出于各种原因,我有一组不同的网站从我的服务器请求iframe
html文件
是否可以跟踪onload
哪个域请求iframe
,然后将其保存在数据库中。
如果域已存在,则不要将其添加到数据库中。
请求 iframe 内容的不是域,而是用户的浏览器。
有一点机会看到这个iframe在哪个页面上:引用者(在标准文档中错误地拼写为"referer",所以每个浏览器都必须复制这个拼写错误),在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));
}
}