【问题标题】:write HTTP_REFERER to txt file in PHP在 PHP 中将 HTTP_REFERER 写入 txt 文件
【发布时间】:2014-03-31 15:27:30
【问题描述】:

您能否建议我可以插入网页的简单 PHP 脚本,该脚本将跟踪和记录访问网页的每个 HTTP_REFERER 用户? 非常感谢您提前提供帮助

【问题讨论】:

标签: php http-referer


【解决方案1】:

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

但是,如果你仍然想走那条路,你可以使用以下方法。

它的作用是使用三元运算符来检查是否设置了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.";
}
*/

【讨论】:

  • 非常感谢!但它看起来很奇怪,因为这个 PHP 脚本找不到引荐来源网址,但 JS 脚本找到了它: 为什么会这样?
  • 不客气。那是因为您需要一个链接来引用“来自”。 @user3481376 如果没有什么可参考的,那是正常的。如前所述,使用$_SERVER['HTTP_REFERER'] 并不总是可靠的。
【解决方案2】:

这是一个非常简单的脚本,可让您将其存档:

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

【讨论】:

  • 它报告了这个:“未定义的索引:HTTP_REFERER in /home4/catherin/public_html/test/viagra.html 在第 15 行”并且 myfile.txt 中没有任何内容。是因为空的http_referer?
【解决方案3】:

在 apache 中记录可能是一个更好的主意(如果是平台的话)。

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

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

这样做的原因是,构建自己的跟踪脚本比看起来要多得多,即使是在最简单的层面上也是如此。如果它可以使用。

另一个想法是安装一些来自第 3 方的日志记录软件。我认为 statcounter 使用日志文件,例如可以为您提供所需的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多