2011-10-22 60 views
0

我已经当用户成功登录以下标签: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头部语句在代码的开头,用户重定向到成员页面,如果他们已经登录。这可能会影响它吗?我没有收到任何头文件已经发送错误...

+0

你可以发布'header'调用的所有代码吗? –

+4

启用error_reporting或查看error.log – mario

+3

提示:始终在'header()'后面使用'exit()',并在页面顶部写入'ob_start()' – diEcho

回答

1

只要把error_reporting(E_ALL)和ini_set(“display_errors”,1),你会看到什么是错的。

0

安装HTTP扩展和使用这个来代替:

http_redirect('/members'); 

这应该做的伎俩。如果你没有安装。你可以模仿它的功能。这是explained in detail on the manual page,简而言之步骤:

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

如果你不遵循the specs,你不能指望事情与浏览器一起工作。在互联网上给出的许多例子是而不是给予符合重定向,所以不要被错误的例子误导。

除此之外 - 正如其他人所建议的那样 - 在您的开发框中打开错误报告,以便您了解代码生成的任何通知和警告。处理这些问题也是如此。

+0

事情是,它之前工作正常。我已打开错误报告,但我从Chrome中收到错误消息,因此实际上看不到该页面。此外,错误日志中没有任何内容。 – Lukas