PHP header () не работает - PullRequest
       17

PHP header () не работает

2 голосов
/ 24 августа 2011

Кто-нибудь знает, почему мой заголовок () не перенаправляет?

Последняя часть моего сценария:

  header("location: test.php");
  die('died');

пишет:

died.

: (((

Он должен перенаправить перед смертью, но это не так.

У вас есть идеи?

Ответы [ 8 ]

10 голосов
/ 24 августа 2011

Возможно, вы вызываете header () , после вы выводите некоторый текст / HTML в браузер, что является нет-нет.Ваш вызов header () будет проигнорирован, даже если перед вызовом было отправлено хотя бы одно пространство вывода.

Другими словами, ваш код header () должен быть в начале вашего скрипта,перед отображением что-нибудь для пользователя.Если это все еще не работает, убедитесь, что у вас нет пробелов или других пробелов по ошибке за пределами ваших php-тегов.

3 голосов
/ 24 августа 2011

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

Дополнительно Location-Headers должен содержать абсолютный URL:

// Show Errors
error_reporting(E_ALL);
ini_set('display_errors','On');
// Redirect
header('Location: http://example.com/path/test.php');
die('redirect');
2 голосов
/ 24 августа 2011

Вы должны использовать полный адрес для заголовка своего местоположения, а не выводить любой контент:

header('Location: http://example.com/test.php');
die();

Кроме того, убедитесь, что никакой другой контент не был отправлен до установки заголовкаиначе он не будет отправлен, так как заголовки уже отправлены в браузер.

0 голосов
/ 10 октября 2017

Добавить

ob_start();

до

header("location: test.php");
0 голосов
/ 20 июля 2017

Если файл, содержащий инструкцию 'header ()', прямо или косвенно требуется в файле HTML, то инструкция {include 'someFile'} должна быть первой строкой этого файла HTML.Поместите эту инструкцию поверх вашего HTML-файла, как показано на этом изображении.

0 голосов
/ 06 февраля 2015

Просто разрешите это, удалив ВСЕ вещи перед тегом php.

Удалите пробел перед тегом php

Выберите все перед тегом и затем нажмите eraseкнопка.

0 голосов
/ 23 ноября 2014

Я тоже застрял на этой ошибке и пытался показать ошибки с помощью error_reporting (E_ALL), но у меня это не сработало.Информация: Я использовал хостинг на Strato.

Решением всего этого ответил Floem, спасибо за эту замечательную настройку.

Если вы никогда не получаете ошибок в случае, если вывставьте error_reporting(E_ALL) один раз, -> Вы должны дополнительно добавить ini_set('display_errors', 'On'), чтобы заставить PHP показать все ваши ошибки.Это решило мою проблему с ошибкой на

Тогда можно прочитать, почему PHP не сделает ваше перенаправление.Один совет на моей стороне: я бы порекомендовал вам создать небольшой класс перенаправления, как показано в этом видео: Класс перенаправления для легкого использования , если вы собираетесь использовать это перенаправление чаще, чем обычно.

0 голосов
/ 24 августа 2011

location: должно быть Location:.

Кроме того ...

  • Прокрутите вверх до этой страницы.
  • Нажмите на имя вашей учетной записи.
  • Нажмите на случайный вопрос
  • Отметьте случайный ответ
  • Вернись, чтобы найти больше ответов serieus

Удачи.

...