从$ _SERVER导致[“HTTP_REFERER”],当参照标头不被发送到服务器(Result

2019-08-04 07:36发布

当浏览器发送头信息到服务器, $_SERVER['HTTP_REFERER']应该给我们前面的页面网址吧?

从什么返回$_SERVER['HTTP_REFERER']当头部信息不会被发送到服务器? 空字符串? 假? 空值? 要么... ?

Answer 1:

如果没有发送的HTTP Referer头请求,则$_SERVER['HTTP_REFERER']可能是没有设置,但它可能是一个空字符串。 无论是否被设置在这种情况下,可以依赖的服务器上。

如同所有的HTTP请求头,检查其存在阅读时:

$httpReferer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;


Answer 2:

$_SERVER['HTTP_REFERER']是不是真的可靠,因为在用户浏览器的特定设置可以打破它。 但是,是它应该包含以前的URL,它将返回空字符串或NULL时根据服务器配置标题不发送。



Answer 3:

$ _SERVER是一个全局数组变量,和引荐值是与关键HTTP_REFERER数组的一个元素。 如果没有网址标头是由浏览器发送,则元件被简单地从阵列丢失。 您可以检查数组是否有一个元素array_key_exists ; 在这种情况下:

array_key_exists('HTTP_REFERER', $_SERVER)



文章来源: Result from $_SERVER['HTTP_REFERER'], when referer header is not sent to server