php Notice: Undefined index: HTTP_REFERER解决方法

时间:2016-07-01
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']

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