我有几个问题。我在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中抛出任何错误。
老板想要一个特定页面的推荐人记录(我使用这个特定的页面作为测试。它不是目标页面。)
我的问题是:
如果上面的代码没有失败,那么hefere可以referer.txt在joomla系统中?
还有另一种方法吗?例如,此页面http://www.webvanta.com/post/248869-using-referrer-urls-to-better-understand建议使用javascript构建Cookie来跟踪引荐来源,此网站http://webdesign.about.com/cs/loganalysistools/a/aaloganalysis.htm建议使用网络日志和日志分析工具。
这样做的最佳方式是什么?
答案 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');
。