Как узнать какого расширения нет на моем сервере?

Тема в разделе "Администрирование серверов", создана пользователем saymong, 16 янв 2013.

Модераторы: mefish
  1. saymong

    saymong

    Регистр.:
    29 сен 2010
    Сообщения:
    553
    Симпатии:
    385
    Пути существуют и файлы также. Просто непонятно, в папке plugins/ много подпапок, так вот, в некоторых случаях функции срабатывают, а в некоторых нет. Код почти идентичный... Единственное различие - это сервисы... типа твиттера и тд.

    Короче попытался создать тест файл, но со своими знаниями, курю в сторонке...
    Разъясните плиз, как правильно создать тест файл для проверки GLOB.

    В общем, кто сможет переделать мне скрипт, чтобы он работал на PHP 5.4 либо чтобы работал с кодировкой ЮНИКОД - оплачу работу. О цене договоримся. ICQ 633-655-566
    В чем проблема с ЮНИКОД? В том, что если я пишу на русском, то все данные заносятся в базу ломанными и естественно так же выводятся обратно.
     
    FedorMaxx нравится это.
  2. efs

    efs SEO оптимизатор дискрипторов одностраничных сайтов

    Регистр.:
    20 ноя 2009
    Сообщения:
    834
    Симпатии:
    494
    где указывается подключение к базе, добавьте
    Код:
    mysql_query("SET NAMES UTF8");
    ну и базу в утф переведите
     
  3. saymong

    saymong

    Регистр.:
    29 сен 2010
    Сообщения:
    553
    Симпатии:
    385
    Уже все это делал. Ничего не помогает. Дело в том, что кажется сами заголовки общаются с БД через ЮНИКОД. Я уже методов 20 перепробовал. И понял, что дело в скрипте и надо его переделывать. А такие вещи, как кодировка по умолчанию и тд. ничего не помогает.
     
    FedorMaxx нравится это.
  4. invader

    invader Серый кардинал в отставке :)

    Moderator
    • Супермодератор
    Регистр.:
    3 апр 2006
    Сообщения:
    2.641
    Симпатии:
    5.857
    Пробуйте заменой по всем файлам.
    Найти:
    htmlentities
    Заменить на:
    htmlspecialchars
     
    saymong нравится это.
  5. saymong

    saymong

    Регистр.:
    29 сен 2010
    Сообщения:
    553
    Симпатии:
    385
    В общем, htmlentities встречается только в 1 файле. Его замена на htmlspecialcharsникакого результата не дала.

    <?php

    function executeSql($sqlFileToExecute)
    {
    $sqlErrorCode = "";
    $f = fopen($sqlFileToExecute,"r+");
    foreach ($sqlArray as $stmt) {
    if (strlen($stmt)>3 && substr(ltrim($stmt),0,2)!='/*') {
    $result = mysql_query($stmt);
    if (!$result) {
    $sqlErrorCode = mysql_errno();
    $sqlErrorText = mysql_error();
    $sqlStmt = $stmt;
    break;
    }
    }
    }
    if ($sqlErrorCode == 0) {
    return "Script is executed succesfully!";
    } else {
    return "An error occured during installation!<br/>"
    . "Error code: $sqlErrorCode<br/>"
    . "Error text: $sqlErrorText<br/>"
    . "Statement:<br/> $sqlStmt<br/>";
    }
    }
    function filter($data) {
    $data = trim(htmlspecialchars(strip_tags($data))); - здесь заменил

    if (get_magic_quotes_gpc())
    $data = stripslashes($data);

    $data = mysql_real_escape_string($data);
    }

    function checkPwd($x,$y)
    {
    if(empty($x) | empty($y) ) { return false; }
    if (strlen($x) < 4 || strlen($y) < 4) { return false; }

    if (strcmp($x,$y) != 0) {
    return false;
    }
    return true;
    }

    function VisIP()
    {
    if(isset($_SERVER['HTTP_FORWARDED_FOR']))
    $The=$_SERVER['HTTP_FORWARDED_FOR'];
    else $The=$_SERVER['REMOTEADDR'];

    return trim($The);
    }

    function Email($email){
    return preg_match('/^\S+@[\w\d.-]{2,}\.[\w]{2,6}$/iU', $email) ? TRUE : FALSE;
    }

    function User($username)
    {
    if (preg_match('/^[a-z\d_]{3,20}$/i', $username)) {
    return true;
    } else {
    return false;
    }
    }
    function Name($name)
    {
    if (preg_match('/^[a-zA-Z]$/i', $nume)) {
    return true;
    } else {
    return false;
    }
    }
    function 404'r($url) {
    $handle = curl_init($url);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);

    $response = curl_exec($handle);

    $httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    curl_close($handle);

    if ($httpCode >= 200 && $httpCode < 300) {
    return false;
    } else {
    return true;
    }
    }
    function truncer($trailing='...')
    {
    $length-=mb_strlen($trailing);
    if (mb_strlen($str)> $length)
    {
    return mb_substr($str,0,$length).$trailing;
    }
    else
    {
    $res = $str;
    }

    return $res;
    }
    function get_datas($url)
    {
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
    $data = curl_exec($ch);
    curl_close($ch);

    }

    function percent($num_amount, $num_total) {
    echo $count;
    }
    ?>



    Что еще можете посоветовать?
    Вот сам ХЕДЕР скрипта, который что то порит с кодировкой


    <?php
    if(!isset($site))
    {
    include 'config.php';
    }
    foreach($_GET as $key => $value) {
    $gets[$key] = filter($value);
    }
    foreach($_POST as $key => $value) {
    $_POST[$key] = filter($value);
    }

    if(isset($gets['r']))
    {
    $refid = $gets['r'];
    if(isset($_SERVER['HTTP_REFERER']))
    {
    $httpref = $_SERVER['HTTP_REFERER'];
    }
    else
    {
    $httpref = "";
    }
    $ip = VisitorIP();

    $sameid = mysql_fetch_object(mysql_query("SELECT ip FROM `users` WHERE `id`='{$refid}'"));
    if(!isset($sameid->ip))
    {
    setcookie("ref", $refid, time()+ (365 * 24 * 60 * 60));
    }
    else if($sameid->ip != $ip)
    {
    setcookie("ref", $refid, time()+ (365 * 24 * 60 * 60));
    }


    $visits = mysql_query("SELECT id FROM `visits` WHERE `ip`='{$ip}' AND `user`='{$refid}'");
    $num = mysql_num_rows($visits);
    if($num == 0 && !preg_match("/\bhost-tracker\b/i", $httpref)) {
    mysql_query("UPDATE `users` SET `coins`=`coins`+'1', `promote`=`promote`+'1' WHERE `id`='{$refid}'");
    mysql_query("INSERT INTO `visits` (user, ip, referer, date) VALUES('{$refid}', '{$ip}', '{$httpref}', NOW())");
    }
    }

    if(isset($_POST['loginUsername'])) {
    $accounts = mysql_query("SELECT * FROM `users` WHERE `username`='{$_POST['loginUsername']}' AND `pass`=MD5('{$_POST['loginPassword']}')");
    $exists = mysql_num_rows($accounts);
    $userdata = mysql_fetch_object($accounts);
    if($exists == 0){
    ?><script>alert("Incorrect Username/Password!");document.location.href='index.php'</script><?php
    }else if($userdata->banned > 0){
    ?><script>alert("Your account is banned!");</script><?php
    }else if($userdata->activate > 0){
    ?><script>alert("You need to confirm your email first!");</script><?php
    }else if($exists > 0) {
    $_SESSION['IP'] = VisitorIP();
    mysql_query("UPDATE `users` SET `online`=NOW() WHERE `username`='{$_POST['loginUsername']}'");
    $user = mysql_query("SELECT * FROM `users` WHERE `username`='{$_POST['loginUsername']}'");
    $_SESSION['data'] = mysql_fetch_object($user);
    $_SESSION['username'] = $_POST['loginUsername'];
    echo "<script>document.location.href='index.php'</script>";
    }
    else{
    ?><script>alert("Incorrect Username/Password!");document.location.href='index.php'</script><?php
    }
    }

    if(isset($_SESSION['username'])){
    $user = mysql_query("SELECT *,UNIX_TIMESTAMP(`online`) AS `online` FROM `users` WHERE `username`='{$_SESSION['username']}'");
    $data = mysql_fetch_object($user);
    }
    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>
    <?
    if ($site->translate == "Enabled"){?>
    <script>
    function googleTranslateElementInit() {
    new google.translate.TranslateElement({
    pageLanguage: 'en',
    autoDisplay: false,
    floatPosition: google.translate.TranslateElement.FloatPosition.TOP_RIGHT
    });
    }
    </script><script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
    <?}?>



    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title><?php echo $site->site_name; ?></title>
    <meta name="description" content="<?php echo $site->site_description; ?>" />

    <link href="styleOrig.css" rel="stylesheet" type="text/css" />
    <link href="template/style.css" rel="stylesheet" type="text/css" />

    <script type="text/javascript" src="jquery.js"></script>

    </head>

    <body>


    Дальше уже идет текст.


    Напомню в чем проблема. Итак, если я пишу новость на русском языке, через админку, то текст ломается. Он ломаным содержится в базе и показывается на сайте. Пример ломанного текста:
    &ETH;�&Ntilde;�&ETH;&micro;&ETH;&frac14; &ETH;&iquest;&Ntilde;�&ETH;&cedil;&ETH;&sup2;&ETH;&micro;&Ntilde;�

    Помогите плиз решить проблему. Отблагодарю.
     
    FedorMaxx нравится это.
  6. invader

    invader Серый кардинал в отставке :)

    Moderator
    • Супермодератор
    Регистр.:
    3 апр 2006
    Сообщения:
    2.641
    Симпатии:
    5.857
    Мнемоники.
    Либо хедеры тут вообще не при чём.
    Функция strip_tags обрабатывает POST и преобразует русс. символы в мнемоники.
    В случае, если используется не стандартная функция PHP:
    http://php.net/manual/en/function.strip-tags.php
    Пробуйте так:
    Найти:
    PHP:
    $data trim(htmlspecialchars(strip_tags($data)));
    Заменить на:
    PHP:
    $data trim(htmlspecialchars($data)); 
    Если выведет нормально, но уберёт пробелы, то:
    PHP:
    $data htmlspecialchars($data); 
    Либо в PHP отправки формы
    header("Content-Type:text/html;charset="ISO-8859-1");
    Нужно как раз видеть, каким образом этот текст выведен.
    Возможно там какая то обработка.
    Для теста в любом случае нужно видеть ваш скрипт изнутри.
    Иначе только гадать...
     
  7. Qwest-fx

    Qwest-fx Постоялец

    Регистр.:
    3 апр 2007
    Сообщения:
    135
    Симпатии:
    40
    У Вас функция зашифрована, зачем тот кусок кода там не понятно.
    Заменить ничего не получился, если не расшифровать скрипт.
    Для Вашего убеждения можете поставить die; в filter функции
    htmlspecialchars по умолчанию только в php5-4 использует UTF-8
    В других версиях нужно определить кодировку.
    Есть она не определена, получается ерунда выше.
    Скрипт выполнится. И не заметит.
     
    saymong нравится это.
  8. saymong

    saymong

    Регистр.:
    29 сен 2010
    Сообщения:
    553
    Симпатии:
    385
    Здравствуйте Александр)))
    Вот раскодированный участок того файла. Только в данном месте идет (указана) кодировка. Как мне изменить ее правильно.
    function use_curl($url, $querystring) {
    if (!function_exists( 'curl_init' )) {
    return false;
    }

    $curl = curl_init( );
    $header[0] = 'Accept: text/xml,application/xml,application/xhtml+xml,';
    $header[0] .= 'text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5';
    $header[] = 'Cache-Control: max-age=0';
    $header[] = 'Connection: keep-alive';
    $header[] = 'Keep-Alive: 300';
    $header[] = 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7';
    $header[] = 'Accept-Language: en-us,en;q=0.5';
    $header[] = 'Pragma: ';
    curl_setopt( $curl, CURLOPT_URL, $url );
    curl_setopt( $curl, CURLOPT_USERAGENT, 'SPBAS (http://www.spbas.com)' );
    curl_setopt( $curl, CURLOPT_HTTPHEADER, $header );
    curl_setopt( $curl, CURLOPT_ENCODING, 'gzip,deflate' );
    curl_setopt( $curl, CURLOPT_AUTOREFERER, true );
    curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt( $curl, CURLOPT_POSTFIELDS, $querystring );
    curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, 0 );
    curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, 0 );
    curl_setopt( $curl, CURLOPT_CONNECTTIMEOUT, $this->remote_timeout );
    curl_setopt( $curl, CURLOPT_TIMEOUT, $this->remote_timeout );
    $result = curl_exec( $curl );
    $info = curl_getinfo( $curl );
    curl_close( $curl );

    if ((int)$info['http_code'] != 200) {
    return false;
    }

    return $result;
    }
     
    FedorMaxx нравится это.
  9. Qwest-fx

    Qwest-fx Постоялец

    Регистр.:
    3 апр 2007
    Сообщения:
    135
    Симпатии:
    40
    Нет, это нет тот файл, закодированный подключается в конфиге.
     
    saymong нравится это.
  10. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.740
    Симпатии:
    2.120
    мне вот интересно, если оригинальная мессага была
    как её понимать, читать и вообще, куда применить :crazy: что вообще человек пишет? такое впечатление, что переводит на лету.