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">