我有一组不同的网站iframe
出于各种原因从我的服务器请求一个 html 文件
是否可以跟踪onload
哪个域请求iframe
,然后将其保存在数据库中。
如果域已经存在,则不要将其添加到数据库中。
请求 iframe 内容的不是域,而是用户的浏览器。
有一点机会看到这个 iframe 在哪个页面上:引用者(在标准文档中被错误地拼写为“引用者”,所以每个浏览器都必须复制这个错字),在 PHP 中通过 $_SERVER['HTTP_REFERER'] 可用。
您可以尝试从那里解析域,最好使用parse_url()。
您可以结合使用 jQuery 的post()
功能和 PHP 的$_SERVER
变量:
$.post("collect.php", { source: "<?=$_SERVER['HTTP_REFERER']?>" } );
然后,您的收集脚本可以检查数据库以查看对源的现有引用,并在需要时输入新引用。使用 PDO 的示例:
if (isset($_POST['source']) && $source = $_POST['source']) {
$db = new PDO('mysql:host=localhost;dbname=testdb;charset=UTF-8', 'username', 'password');
// Be sure to sanitize $source
if ($db->query("SELECT * FROM table WHERE source = $source")->rowCount() == 0) {
$stmt = $db->prepare("INSERT INTO table(`time`, `source`) VALUES(?, ?)");
$stmt->execute(array(time(), $source));
}
}