[Важно] Проблемы версии 2.0.9

Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Зарегистрирован: 13.03.2004 21:27
Поблагодарили: 2 раза
Контактная информация:

[Важно] Проблемы версии 2.0.9

Сообщение Xpert » 15.07.2004 9:40

Согласно информации на phpBB.com, многие пользователи после обновления форума до версии 2.0.9, вышедшей 13.07.2004, начали испытывать проблемы с отправкой сообщений, содержащий апострофы ('), заключающиеся в появлении ошибки SQL-запроса. Данная проблема проявляется только при значении переменной register_globals=on в конфигурации Apache вашего хостера. Чтобы избежать появления этой ошибки, вам необходимо произвести следующие изменения в файле common.php:

НАЙТИ

Код: Выделить всё

// Unset globally registered vars - PHP5 ... hhmmm 
if (@$ini_val('register_globals') == '1' || strtolower(@$ini_val('register_globals')) == 'on') 
{ 
    $var_prefix = 'HTTP'; 
    $var_suffix = '_VARS'; 

    $test = array('_GET', '_POST', '_SERVER', '_COOKIE', '_ENV'); 

    foreach ($test as $var) 
    { 
        if (is_array(${$var_prefix . $var . $var_suffix})) 
        { 
            unset_vars(${$var_prefix . $var . $var_suffix}); 
        } 

        if (is_array(${$var})) 
        { 
            unset_vars(${$var}); 
        } 
    } 

    if (is_array(${'_FILES'})) 
    { 
        unset_vars(${'_FILES'}); 
    } 

    if (is_array(${'HTTP_POST_FILES'})) 
    { 
        unset_vars(${'HTTP_POST_FILES'}); 
    } 
}
ЗАМЕНИТЬ НА

Код: Выделить всё

// Unset globally registered vars - PHP5 ... hhmmm 
if (@$ini_val('register_globals') == '1' || strtolower(@$ini_val('register_globals')) == 'on') 
{ 
    $var_prefix = 'HTTP'; 
    $var_suffix = '_VARS'; 

    $test = array('_GET', '_POST', '_SERVER', '_COOKIE', '_ENV'); 

    foreach ($test as $var) 
    { 
        if (is_array(${$var_prefix . $var . $var_suffix})) 
        { 
            unset_vars(${$var_prefix . $var . $var_suffix}); 
            @reset(${$var_prefix . $var . $var_suffix}); 
        } 

        if (is_array(${$var})) 
        { 
            unset_vars(${$var}); 
            @reset(${$var}); 
        } 
    } 

    if (is_array(${'_FILES'})) 
    { 
        unset_vars(${'_FILES'}); 
        @reset(${'_FILES'}); 
    } 

    if (is_array(${'HTTP_POST_FILES'})) 
    { 
        unset_vars(${'HTTP_POST_FILES'}); 
        @reset(${'HTTP_POST_FILES'}); 
    } 
}
Дистрибутивы форума будут обновлены в самое ближайшее время, при этом номер версии не претерпит изменений.


Замечания:

- проблемы при цитировании сообщений являются следствием проблемы с апострофами, приведенная выше замена кода должна избавить вас от ошибок;

- замена файла common.php на аналогичный из дистрибутива версии 2.0.8, мотивируемая проблемами с модами в новой версии phpBB возможна, однако не является правильной - ошибки модов вызваны тем, что их авторы уделили недостаточно внимания безопасности, а вовсе не проблемами phpBB.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений

Закрыто

Вернуться в «Новости и объявления (архив)»