有没有办法通过您的网站页面跟踪用户?

时间:2017-08-25 18:13:47

标签: php

是否有一个命令,比如获取用户的IP,可以通过类似$ip = getenv("REMOTE_ADDR") ;的网站进行跟踪?有谁知道他们的清单?

1 个答案:

答案 0 :(得分:0)

我同意chris85的评论。 Use PHP sessions如果您想自己编写解决方案。它们将允许您跟踪启用了Cookie的用户。

我会为此目的避免使用IP地址,因为代理背后的人(例如:来自同一公司,同一所大学,同一VPN的用户......)将共享相同的IP地址。

鉴于功能:

 <td>
    <input type="checkbox"
       name="item-{{item.bed}}"
       #myItem
      (change)="OnCheckboxSelect(item.id, $event)"
     >
 </td>

您可以通过以下方式启动脚本来记录访问以供以后分析:

@ViewChildren('myItem') item;
selectedIds = [];

  OnCheckboxSelect(id, event) {
    if (event.target.checked === true) {
      this.selectedIds.push({id: id, checked: event.target.checked});
      console.log('Selected Ids ', this.selectedIds);
    }
    if (event.target.checked === false) {
      this.selectedIds = this.selectedIds.filter((item) => item.id !== id);
    }
  }

现在,当用户在网站上时,/** * Note this is not production code! Error checks need to be added */ function logVisit(PDO $db){ static $alreadyLogged = false; if($alreadyLogged) return; /*TO DO: abort if user has Do-Not-Track header set*/ $page = $_SERVER['PHP_SELF']; $time = date('Y-m-d H:i:s'); $_SESSION['visit'][] = [ 'page' => $page, 'visit_time' => $time ]; $stmt = $db->prepare('INSERT into tbl_log VALUES(:page, :visit_time, :session)'); $stmt->execute([':page'=>$page, ':visit_time'=>$time, ':session'=>session_id()] ); $alreadyLogged = true; } 会记录她的访问记录,因此您可以执行诸如在侧边栏中显示最近查看过的文章等内容。由于数据保存在数据库中,因此一旦用户离开,您可以将其分析用于其他目的。

一个重要的限制(除了对cookie的依赖)是将两个不同的访问链接到同一个用户并不容易。从好的方面来说,它是尊重隐私的,因为没有记录IP地址这样的个人信息。