mingyunyuziyou

php Notice: Undefined index: HTTP_REFERER解决方法

作者: 秒速五厘米     
 


php中出现这种错误,一般都是因为页面中使用了$_SERVER['HTTP_REFERER']来获取前一个页面URL地址,而这个变量并未设置,所以就出现PHP语法错误。下面小编给大家分享一下如何解决这个错误。

首先来说一下为什么使用$_SERVER['HTTP_REFERER']会出现这个报错的原因。

我们大家都知道$_SERVER['HTTP_REFERER']用来获取当前页面的上一个页面地址,只有上一个页面存在,$_SERVER['HTTP_REFERER']才会被设置,如果没有上一个页面(比如用户直接在浏览器上输入当前页面地址打开页面,这时候就没有上一个页面了),$_SERVER['HTTP_REFERER']变量不会被设置。所以在使用这个变量时会报错。

 

解决办法:

1、关闭掉 NOTICE错误的警告

error_reporting(E_ALL ^ E_NOTICE);

 

2、使用isset判断变量是否存在或设置

if(isset($_SERVER['HTTP_REFERER'])) 
{
    echo $_SERVER['HTTP_REFERER'];
}

 

3、在变量前面加上@

@$_SERVER['HTTP_REFERER']

 

小编在这里推荐大家使用第二种方法,因为第二种方法是从根本上解决了问题,第一种和第三种只是不让错误输出在浏览器上。


最近遇到一个比较诡异的问题,就是$_SERVER变量的HTTP_REFERER不存在。

提示Notice: Undefined index: HTTP_REFERER

如果,原来从https来路跳转过来,落地网页也要是https才行。

如果头部标签有referrer的标签也要去掉  如下:

<meta name="referrer" content="never">