是否有一个命令,比如获取用户的IP,可以通过类似$ip = getenv("REMOTE_ADDR") ;
的网站进行跟踪?有谁知道他们的清单?
答案 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地址这样的个人信息。