0

我有几个问题。我在 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. 如果上面的代码没有失败,那么referer.txt 到底在哪里?

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

做这个的最好方式是什么?

4

1 回答 1

2

第一行$referer = get_en("HTTP_REFERER");是 using 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');.

于 2012-08-01T18:28:56.460 回答