HTTP_REFERER重定向php代码无法正常工作?

时间:2012-06-13 03:27:16

标签: php http redirect referer

以下脚本位于我网站的标题中。我想使用谷歌分析来监控指定网站发送到我开车的网站的流量。该脚本将用户从我的网站重定向到我正在加载流量的网站。我测试了脚本,它没有重定向。我在另一个网站上放了一个链接到我的网站,我必须测试脚本,但我没有重定向到我试图提高流量的网站。有什么想法吗?

 <?php
 $ref = $_SERVER["HTTP_REFERER"];
 if ( $ref != 'http://www.websitetrafficiscomingfrom.com' )
exit;
 ?>

 <?php if ( $ref == 'http://www.websitetrafficiscomingfrom.com' ) { ?>

 <script type="text/javascript">

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-32605120-1']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

</script>

 <!-- <?php } else if ($_SERVER['HTTP_REFERER'] != "") { ?>

 <script type="text/javascript">
 var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-32554427-2']);
  _gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
   var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
 })();

 </script> -->

 <meta http-equiv='REFRESH" content='0;url=websitetrafficissupposedtogoto.com'>

 <?php } ?>

1 个答案:

答案 0 :(得分:1)

对于初学者,推介者将始终为空白或完整网址(如果需要,包括尾随/)。因此,它永远不会是你要求的价值。因此,您将永远死亡并导致空白页面无法执行任何操作。

除此之外,我真的不得不想知道你在做什么。与其附带的代码相比,您的问题似乎没有任何意义,而且代码似乎是多余的。我的意思是,你检查a != b是否退出,如果是的话。否则,请检查是否a == b,好像它有可能突然变得不再真实。更糟糕的是,你有一个已注释掉的else块,显示在某些时候你明确打算再次检查是否a != b,即使你的代码已经死了,如果这样做的话案件......

我建议完全删除此代码。使用HTTP_REFERER没有用或可靠,我唯一能用它来阻止大多数热链接尝试是一个微弱的障碍。即使这样,也要谨慎。