PHP位置标头导致错误


PHP Location Header Causing an Error

当用户成功登录时,我有以下标记:

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头语句在代码的开始,重定向用户到成员页,如果他们已经登录。这会影响它吗?

只要输入error_reporting(E_ALL)和ini_set("display_errors", 1),你就会看到哪里出错了

安装HTTP扩展,并使用如下:

http_redirect('/members');

这应该能奏效。如果你没有安装它。你可以模仿它的行为。在手册页上有详细的解释,步骤简单:

  • 从相对URI创建一个绝对URI,因为RFC重定向必须有一个。
  • 检查头是否已经发送,如果是不发送头,否则发送。
  • 显示带有重定向链接的HTTP响应体
  • 退出脚本

如果你不遵循规范,你就不能指望在浏览器上工作。在互联网上给出的许多例子都是而不是给出符合的重定向,所以不要被坏例子误导。

接下来-正如其他人已经建议的那样-打开开发框上的错误报告,以便您了解代码产生的任何通知和警告。处理好这些问题