我正在尝试记录在他们的网站上使用我的横幅的网站..所以我开始这样:
$db = new mysqli('xxx', 'xxx', 'xxx', 'xxx');
if ($db->connect_errno) {
printf("Connect failed: %s\n", $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总是空的,是他们以任何其他方式将网站网址保存到我放置横幅的网站的数据库中吗?我做错了什么?
答案 0 :(得分:3)
您应该查看引荐来源而不是REMOTE_HOST。 REMOTE_HOST将包含客户端浏览器的主机名, NOT 放置横幅代码的服务器。您正在寻找HTTP_REFERER。
答案 1 :(得分:2)
这不会那样。 $_SERVER['REMOTE_HOST']
是查看网站的address of the client,而不是其嵌入的网站。无法找到您的横幅广告所在的位置。用户代理(浏览器)只会从您的服务器请求横幅。
您应该要求在其网站中嵌入横幅的人添加某种密钥。没有钥匙,你什么也不做,用钥匙,你知道你的客户是谁。
答案 2 :(得分:1)
删除addrress确实是空的。也许您可以查看$_SERVER['REMOTE_HOST']
而不是自己查找。另一种选择是将这些事情结合起来。
另请注意,此数据可能会受到该行另一方的欺骗。