使用横幅记录网站

  • 本文关键字:记录 网站 php
  • 更新时间 :
  • 英文 :


我正在尝试记录那些在他们的网站上使用我的横幅的网站。。所以我开始这样:

$db = new mysqli('xxx', 'xxx', 'xxx', 'xxx');
if ($db->connect_errno) {
    printf("Connect failed: %sn", $db->connect_error);
    exit();
}
if ($result = $db->query("SELECT * FROM websites WHERE url = '" . $_SERVER['REMOTE_HOST'] . "'" )) {
    if($result->num_rows !== 0) {
        echo "I already know this website contains my banner...!";
    } else {
        $query = "INSERT INTO websites VALUES (NULL, '" . $_SERVER['REMOTE_HOST'] . "', NOW())";
        $db->query($query);
        echo "Hey, this is a new website who placed my banner! Let's add them to my database...";
    }
    $result->close();
}

我将通过提供jpg或png文件来替换echo,这样它将实际显示横幅。但是,remote_address总是空的,他们有其他方法可以将网站url保存到我的横幅所在网站的数据库中吗?我做错了什么?

您应该查看referrer,而不是REMOTE_HOST。REMOTE_HOST将包含客户端浏览器的主机名,NOT放置横幅代码的服务器。HTTP_REFERER就是您想要的。

这不会像那样工作。$_SERVER['REMOTE_HOST']是查看网站的客户端的地址,而不是它嵌入的网站。无法找到您的横幅所在的位置。用户代理(浏览器)只会从您的服务器请求横幅。

你应该要求那些将你的横幅嵌入他们网站的人添加某种密钥。没有密钥,你什么都不提供,有了密钥,你就知道你的客户是谁

Remove-address确实可以为空。也许你可以看看$_SERVER['REMOTE_HOST'],然后自己查找。另一种选择是将这些东西结合起来。

还要记住,这些数据可能会被线路的另一侧欺骗。

最新更新