试图将HTTP_REFERER写入refer.text,但它无法正常工作

时间:2012-08-01 18:10:53

标签: php javascript apache tracking referrer

我有几个问题。我在Joomla工作。我试图使用这个PHP代码将引用者写入referer.txt但我在joomla的任何地方都找不到'referer.txt':

<?php 
$referer = get_en("HTTP_REFERER");
if($referer){
$fp=fopen("referer.txt","a")||die("Could not open referer file!");
fwrite($fp,$referer);
fclose($fp);
}
?>

登台页面不会在firebug中抛出任何错误。

老板想要一个特定页面的推荐人记录(我使用这个特定的页面作为测试。它不是目标页面。)

我的问题是:

  1. 如果上面的代码没有失败,那么hefere可以referer.txt在joomla系统中?

  2. 还有另一种方法吗?例如,此页面http://www.webvanta.com/post/248869-using-referrer-urls-to-better-understand建议使用javascript构建Cookie来跟踪引荐来源,此网站http://webdesign.about.com/cs/loganalysistools/a/aaloganalysis.htm建议使用网络日志和日志分析工具。

  3. 这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:2)

第一行$referer = get_en("HTTP_REFERER");正在使用get_en(),但内置函数为getenv()

访问当前用户引荐来源的另一种方法是通过$_SERVER['HTTP_REFERRER'];参数 - 但根据文档,这与使用getenv()相同。

跟踪引用者的服务器端方法是解析Apache创建的access_log文件。这些日志将为您提供请求日期,请求类型(GET,POST等),文件,查询字符串,IP,UserAgent以及一系列其他信息部分。

关于存储referer.txt文件的位置,您应该使用绝对路径打开它。您可以使用$fp=fopen($_SERVER['DOCUMENT_ROOT'] . '/referer.txt', 'a');,也可以设置自定义路径,例如$fp=fopen("/tmp/referer.txt", 'a');