Я напомнил себе, что xDebug установлен в реальной тестовой среде. и после поиска в Google я нашел этот сайт: http://bugs.xdebug.org/view.php?id=532
Итак, я загрузил последнюю версию xDebug и соответственно изменил php.ini для нового файла, и все работает как шарм. Заголовки отправляются - перенаправление выполнено и отображаются ошибки.
Спасибо всем за помощь!
Включены ли display_errors?
@Gumbo - Конечно, есть!
ну, конечно, нет. потому что
Чтобы проверить, что происходит, я добавил эхо перед заголовком.
если бы у вас был включен display_errors, он отображал бы ошибку, по крайней мере, когда вы включили буферизацию вывода
.
Итак, прежде всего убедитесь, что вы видите сообщения об ошибках.
просто распечатайте неопределенную переменную,
error_reporting(E_ALL);
echo $undef9306;
Я уверен, что вы ее не увидите. Итак, вам нужно включить отображение ошибок
Затем на сервере Вы можете использовать функцию headers_sent ()
, чтобы узнать, были ли отправлены заголовки. На стороне клиента используйте HTTP-сниффер, чтобы узнать, было ли что-нибудь отправлено
И проверьте свой файл на наличие спецификации.
Включены ли у вас короткие теги?
попробуйте использовать длинный тег Php
:
<?php
error_reporting(E_ALL);
header("Location: login.php");
die();
?>
Из документации PHP :
header ()
должен быть вызван перед отправкой любого фактического вывода, либо обычным HTML-теги, пустые строки в файле или из PHP.
И в вашем случае вы используете echo
перед header ()