Quantcast
Channel: php
Viewing all articles
Browse latest Browse all 36

Modx Evo белый экран

$
0
0

После установки патча безопасности на Модх Evo сайт отвалился с белым экраном. Долго ковырялся. Стандартные метода типа увеличить уровень отображения ошибок до максимума, это добавить в начало

error_reporting(E_ALL);
ini_set("display_errors", "on");

Оно не сработало. В error_log тоже ничего. При этом белый экран и в админке и на самом сайте.  Минут 5 я прыгал с бубном, грешил на буфер вывода Modx Evo , ан нет. Пошаговая отладка привела меня к файлу protect.inc.php. Я узрел в нем строки, воистину великих программистов, за которые поотрубал бы руки.

if (strstr(str_replace('.','',serialize(array_merge($_GET, $_POST, $_COOKIE))), '22250738585072011')) {
    header('Status: 422 Unprocessable Entity');
    die();
}

// Null is evil
if (isset($_SERVER['QUERY_STRING']) && strpos(urldecode($_SERVER['QUERY_STRING']), chr(0)) !== false)
    die('');

// Unregister globals
if (@ ini_get('register_globals')) {
    die('');
}

Иначе говоря в трех случаях скрипт может завершаться аварийно, ничего абсолютно не выводя на экран и не записывая в логи и это не считается ошибкой. die() и всё. Что мешало записать в die() информативное сообщение? В моем случае оказалось что у хостера включены register_globals . Выключил их через .htaccess

php_flag register_globals off

И вуаля, белый экран пропал, сайт на Modx Evo заработал.


Viewing all articles
Browse latest Browse all 36

Trending Articles