我已经在这里找了一段时间,找不到我特定问题的答案。
在我网站的100多个位置中,我正在通过标头位置重定向重定向到错误页面。
header("Location: /error.php");
我想做的是捕获HTTP_REFERER并将其记录在error.php页面上,但是由于某种原因,它没有设置。我已经看到了为什么没有使用Meta-refresh设置它的解释,但是location标头是302,所以应该正确设置它吗?有什么想法吗?
[请注意:我知道HTTP_REFERER不可靠,并且我可以单独传递信息。在我的方案中,这都不重要(除非我想更改调用重定向的所有位置)。
[嗯,HTTP_REFERER是由浏览器设置的,如果浏览器选择不将其设置为302重定向,则不应这样做,那么您将不会获得它。 302是一个临时重定向,这意味着上一页暂时不可用。浏览器为什么要发送当前不存在的页面的信息?
实现此目的的好方法:
Referer
行,但是某些浏览器会忽略此行,也不会发送它。确实,如果不修改您也想为其记录信息的每个重定向位置的代码,就无法解决此问题。
实际上是HTTP_REFERER
(中间有一个'R')-卡住的拼写错误!
echo $_SERVER['HTTP_REFERER'];
某些浏览器不支持HTTP_REFERER
。您可以使用isset()
功能,这一点非常重要,您必须使用HTTP_REFERER
而不是HTTP_REFERRER
!