#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, поэтому я не могу увидеть страницу. Кроме того, в журнале ошибок ничего нет.