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