2014-03-31 126 views
-1

您能推荐一个简单的PHP脚本,我可以插入到网页中,它会跟踪和记录每个来到网页的用户的HTTP_REFERER吗? 非常感谢你的帮助提前在PHP中将HTTP_REFERER写入txt文件

+0

从这里开始:http://www.php.net/manual/en/function.fopen.php – SamV

回答

1

使用$_SERVER['HTTP_REFERER']是不可靠的。

但是,如果您仍然想要走这条路线,您可以使用以下内容。

这样做是使用三元运算符来检查引用者是否已设置。

如果找到引用者,那么它将使用a开关将它记录到文件中,并将其添加/添加到它。否则,如果找不到或者不可记录,它只会回显并且不会写入任何文件。

如果您不想继续添加文件,请使用w开关。

注意 - 使用w开关将覆盖任何以前编写的内容。

<?php 
$refer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; 

if(!empty($refer)){ 

    $fp = fopen('file.txt', 'a'); 
    fwrite($fp, "$refer" . "\n"); // Using \n makes a new line. \r\n Windows/MAC 
    fclose($fp); 
    echo "Referer found and written to file."; 
} 

else{ 
echo "No referer, nothing written to file."; 
} 

// Or use this to write "No referer" in the file as a replacement 
/* 
else{ 
    $fp = fopen('file.txt', 'a'); 
    fwrite($fp, "No referer" . "\n"); 
    fclose($fp); 
    echo "No referer."; 
} 
*/ 
+0

非常感谢!但它看起来很奇怪,因为这个PHP脚本无法找到引用,但JS脚本发现它: 为什么会发生这种情况? – user3481376

+0

不客气。那是因为你需要一个链接来引用“from”。 @ user3481376如果没有任何引用,那么这是正常的。如前所述,使用'$ _SERVER ['HTTP_REFERER']'并不总是可靠的。 –

0

这是一个非常简单的脚本,可以让你存档:

$fp = fopen('myfile.txt', 'w'); 
fwrite($fp, $_SERVER['HTTP_REFERER']); 
fclose($fp); 
+0

它报道的:“未定义指数:HTTP_REFERER在/ home4/catherin /的public_html /测试/伟哥。第15行html“,而myfile.txt中没有任何内容。这是因为http_referer为空? – user3481376

0

这可能是一个更好的主意了Apache日志本(如果多数民众赞成平台) 。

关于日志文件: http://httpd.apache.org/docs/1.3/logs.html

然后使用一些指定的软件来分析日志。

之所以这样做,是因为构建自己的跟踪脚本比看起来要多得多,即使是最简单的级别。如果它可以使用。

另一个想法是从第三方安装一些日志软件。我认为statcounter使用日志文件,可以给你你想要的例子。