2017-08-25 71 views
-7

有没有像获取一个用户的IP可以跟踪通过一个网站有点像$ip = getenv("REMOTE_ADDR") ;的命令?任何人都知道他们的名单?有没有办法通过您的网站页面跟踪用户?

+0

谷歌分析。 – clearshot66

+1

'$ _SERVER ['REMOTE_ADDR']'会给你你的用户的IP。你的意思是*他们的名单*?但是,为什么要发明轮子? [Google Analytics](https://analytics.google.com/)或类似的,建立完善的访问者跟踪系统有什么问题? – BenM

+0

要回答你的问题,**是**有一个命令,然后**否**我不知道一个列表,甚至是什么意思.. – GrumpyCrouton

回答

0

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

我会避免为了这个目的IP地址,因为代理服务器后面的人(例如:来自同一公司,同一所大学,同一个VPN ...用户)将共享同一个IP地址。

鉴于功能:

/** 
* 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; 
} 

您也可以用开始脚本日志以供日后分析访问:现在

<?php 
session_start(); 
logVisit(new PDO('...')); 

,当用户在网站上,$_SESSION['visit']将有创纪录她的访问,所以你可以做一些事情,比如在一个侧边栏中显示最近浏览过的文章。由于数据保存在数据库中,因此一旦用户离开,您可以将其分析用于其他目的。

一个重要的限制(除了在饼干的依赖)是它不容易在两个不同的访问链接到同一个用户。另一方面,由于没有像IP地址那样记录个人身份,所以隐私是尊重的。

+0

谢谢!正是我在寻找$ _Server ['PHP_SELF']; –

相关问题