Белый экран вместо редиректа
Часто возникает ситуация, когда при выполнении редиректа с помощью метода системы redirect($url), класс def_module, в браузере появляется белый экран, а FireBug показывает в "Ответе" время генерации страницы:
<!-- This page generated in 0.152338 secs -->
В данном случае, скорее всего проблема в том, что где-то в кастомном php-файле, или tpl-шаблоне, или еще где-то поставлен лишний перенос строки, и в текущий буфер отправляются какие-то данные, из-за этого не могут записаться заголовки для редиректа и он в итоге не происходит. Для отслеживания в каком файле проблема, можно воспользоваться php-методом headers_sent. В файле classes/modules/def_module.php, в методе redirect, в начале метода можно поставить такие строки:
if($_SERVER['REMOTE_ADDR'] == '127.0.0.1'){
if (headers_sent($filename, $linenum)) {
echo "Заголовки уже отправлены в $filename на строке $linenum. Редирект невозможен.";
exit;
}
}
'127.0.0.1' – тут укажите IP-адрес вашего компьютера. При выполнении метода redirect, если заголовки уже отправлены, будет указано в каком файле это было сделано и на какой строке.