2016-09-30 41 views
0

要获得正确的htpp/https +域名,我使用$ _SERVER ['HTTP_REFERER']。 它运作良好,在FF,但在Chrome中我得到的错误:未定义指数:HTTP_REFERER未定义的索引错误:Chrome中的HTTP_REFERER,但未在FireFox中

我可以在上面通过声明

$_SERVER['HTTP_REFERER'] = ''; 

解决这个简单的包含在下一行代码,但我发现它奇怪的是这个错误出现在Chrome中。或者我必须在函数的开头声明$ _SERVER ['']?

+2

这只是意味着Chrome网络浏览器未发送引荐。如果没有指定,那么PHP不能提供一个。这与PHP无关。您必须指定可以显示浏览器的这种不同行为的精确情况。 – arkascha

+0

http://stackoverflow.com/a/12369682/4248328 –

+2

可能重复[$ \ _ SERVER \ ['HTTP \ _REFERER'\]失踪](http://stackoverflow.com/questions/12369615/serverhttp-referer-缺少) –

回答

0

只要检查它是否设置。简单地说:

if (isset($_SERVER['HTTP_REFERER'])) { 
    $referer = $_SERVER['HTTP_REFERER']; 
} else { 
    $referer = ''; 
} 

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