3

我有一组不同的网站iframe出于各种原因从我的服务器请求一个 html 文件

是否可以跟踪onload哪个域请求iframe,然后将其保存在数据库中。

如果域已经存在,则不要将其添加到数据库中。

4

2 回答 2

3

请求 iframe 内容的不是域,而是用户的浏览器。

有一点机会看到这个 iframe 在哪个页面上:引用者(在标准文档中被错误地拼写为“引用者”,所以每个浏览器都必须复制这个错字),在 PHP 中通过 $_SERVER['HTTP_REFERER'] 可用。

您可以尝试从那里解析域,最好使用parse_url()

于 2013-01-26T17:04:45.047 回答
2

您可以结合使用 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));
   }

}
于 2013-01-26T17:06:17.110 回答