有时重定向在PHP中神秘失败?

时间:2010-01-13 04:23:59

标签: php redirect

@header('Location: ' . $uri);

但它很少发生,问题是什么?

4 个答案:

答案 0 :(得分:3)

不要使用@来阻止错误并检查日志,这是以下几点之一:

  1. 以前的错误输出会停止重定向吗?
  2. $ uri有时候很糟糕
  3. 代码中的其他内容很糟糕。
  4. 调试就是答案。

答案 1 :(得分:2)

也许你的脚本出于某种原因在它之前发送了一些输出。删除@

答案 2 :(得分:1)

嗯,很可能是因为空格已经发送了标题。你永远不会知道这一点,因为你前面有一个@符号可以阻止显示错误。

通常这个空格可能是由另一个错误引起的,或者只有在包含某个文件时才会发生。

另一种可能性是$url没有正确格式化,或者某种方式标题只是浏览器看起来不对。在这种情况下,浏览器可能会选择忽略它。回收你发送的完整标题并确保它看起来正确。

最后,如果您连续重定向次数太多,某些浏览器将停止重定向。

答案 3 :(得分:1)

标题可能不会立即发送。始终在die()后使用header()