Intereting Posts
MySQL INSERT INTO с переменной PHP $ Функция bind_param () на не-объекте | PHP MySQL Команда zip -P не работает для создания защищенного паролем файла zip Обновление с symfony1 до symfony2 загрузить более 1 изображения с помощью ajax Получение данных о конвертации валют от Yahooapis теперь, когда iGoogle ушел Как я могу автоматически настроить ширину изображения, созданного GD, в соответствии с текстом? Изменение значений в <select> с помощью другого <select> с использованием AJAX (PHP) Как я могу рекурсивно получить «родительский идентификатор» строк в этой таблице MySQL? Переменная PHP, определенная в «родительском» файле, не распознанная в «обязательном» файле Водяной знак в mPDF (PHP) работает неправильно Создайте механизм для передачи положительного целого числа и отобразите все значения серии Фибоначчи до и включите указанное значение Как проверить, зарегистрирован ли пользователь на другом компьютере? перенаправление перенаправления .htaccess Symfony2 – скачать файл Force

Размещение заголовка PHP-заголовка не работает – почему?

Вот мой файл. Я хочу перенаправить его, но ничего не происходит. Чтобы проверить, что происходит, я добавил эхо перед частью заголовка.

Он не вызывает ошибку или не перенаправляет index.php. Что не так? Я включил / выключить буферизацию вывода, но ничто не делает перенаправление. Что я могу сделать?

<? error_reporting(E_ALL); echo 'This is an error'; header("Location: login.php"); die(); ?> 

благодаря

Из документации PHP :

header() должен быть вызван до отправки любого фактического вывода либо с помощью обычных тегов HTML, пустых строк в файле, либо из PHP.

И в вашем случае вы используете echo перед header()

Я напомнил себе, что у меня установлен xDebug на реальной тестовой среде, и после его поиска я нашел этот сайт: http://bugs.xdebug.org/view.php?id=532

Поэтому я загружу последнюю версию xDebug и изменил php.ini соответственно для нового файла, и все работает как шарм. Отправляются заголовки – выполняется redirecionion и отображаются ошибки.

Спасибо всем за вашу помощь!

У вас есть короткие теги? попробуйте с длинным тегом <?php :

 <?php error_reporting(E_ALL); header("Location: login.php"); die(); ?> 

Включен ли display_errors?
@Gumbo – Это точно!

ну, конечно, нет. потому как

Чтобы проверить, что происходит, я добавил эхо перед частью заголовка.

если вы включили display_errors, он отобразит ошибку, по крайней мере, когда вы turned output buffering on .

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

 error_reporting(E_ALL); echo $undef9306; 

Я уверен, вы не увидите этого. Таким образом, вы должны отображать ошибки на

Далее, на стороне сервера вы можете использовать функцию headers_sent() чтобы увидеть, были ли отправлены заголовки. На стороне клиента используйте сниффер HTTP, чтобы узнать, отправлено ли что-либо

И проверьте свой файл для спецификации.