2017-08-25 74 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']; –

相關問題