测试结果:
同一个页面,2次打开,第一次能获取到Referer第二次获取不到,很好奇原因所在。
test1.php代码是:
<?php echo <span>'测试来源:直接载入页面<br>'; echo <span>'<a href="test_cookie.php">进入页面</a><br>'</span>; echo <span>'测试来源:新窗口打开<br>'</span>; echo <span>'<a target="_blank" href="test_cookie.php">进入页面</a><br>'</span>;
test_cookie.php的代码为:
<?php date_default_timezone_set(<span>'Asia/Shanghai');<span>//设置默认时区</span>header(<span>'content-type:text/html; charset=utf8'</span>);<span>//设置返回头信息</span> echo date(<span>'Y-m-d H:i:s'</span>); echo <span>"<br>\r\n"</span>; echo <span>'PHP获取Refer是:'</span>; $refer=isset($_SERVER[<span>'HTTP_REFERER'</span>])?$_SERVER[<span>'HTTP_REFERER'</span>]:<span>'No refer found'</span>; echo $refer; echo <span>"<br>\r\n"</span>; echo <span>'JS获取Refer是:'</span>; echo <span>"<script>document.writeln(document.referrer);</script>"</span>; echo <span>"<br>\r\n"</span>;
极度好奇是什么原因造成的第一次能获取,第二次不能获取。
环境是LNMPA,官方是http://lnmp.org/lnmpa.html
Mac下用charles抓包
2次请求test1.php的header是一致的。
2次请求test_cookie.php的header是一致的。
那么问题来了,什么原因造成的2次完全一模一样的请求,PHP取不到refer。跪求解。
更多精彩话题关注小五博客http://www.lingdonge.com
以上就介绍了PHP无法获取Referer问题排查,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。