Заголовок местоположения PHP, вызывающий ошибку

#php #header

#php #заголовок

Вопрос:

У меня есть следующий тег для успешного входа пользователя в систему:

 header('Location: /members');
 

Раньше это всегда работало. Однако теперь, когда я пытаюсь загрузить страницу, Chrome выдает мне эту ошибку:

 HTTP Error 500 (Internal Server Error): An unexpected condition was encountered while the server was attempting to fulfill the request.
 

В Firefox я просто получаю пустую страницу. Когда я комментирую оператор заголовка, он работает, но без перенаправления (очевидно).

Я пробовал это с включенной и выключенной буферизацией вывода, с тем же эффектом. Есть идеи?

Редактировать: у меня есть оператор заголовка PHP в начале кода, который перенаправляет пользователей на страницу участника, если они уже вошли в систему. Может ли это повлиять на него? Я не получаю никаких заголовков, которые уже отправили ошибки…

Комментарии:

1. Можете ли вы опубликовать весь код вокруг header вызова?

2. Включите error_reporting или просмотрите error.log

3. Совет: всегда используйте exit() сразу после header() и пишите ob_start() в верхней части страницы

Ответ №1:

Просто введите error_reporting(E_ALL) и ini_set(«display_errors», 1), и вы увидите, что не так.

Ответ №2:

Установите расширение HTTP и используйте это вместо:

 http_redirect('/members');
 

Это должно сработать. Если он у вас не установлен. вы можете имитировать то, что он делает. Это подробно объясняется на странице руководства, шаги вкратце:

  • Создайте абсолютный URI из относительного URI, поскольку перенаправление с помощью RFC должно иметь его.
  • Проверьте, были ли отправлены заголовки, если да, не отправляйте заголовок, в противном случае сделайте.
  • Отобразите тело HTTP-ответа со ссылкой перенаправления.
  • Выйдите из скрипта.

Если вы не следуете спецификациям, вы не можете ожидать, что все будет работать с браузером. Многие примеры, приведенные в Интернете, не дают соответствующих перенаправлений, поэтому не вводите в заблуждение плохие примеры.

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

Комментарии:

1. Дело в том, что раньше он работал нормально. Я включил сообщение об ошибках, но я получаю сообщение об ошибке от Chrome, поэтому я не могу увидеть страницу. Кроме того, в журнале ошибок ничего нет.