2012-07-05 71 views
1

我想設置一條介紹性消息以向所有新用戶展示。它應該以某種方式存儲他們的信息(cookie?IP地址?),以便他們(理想情況下)永遠不會再看到該消息。我知道這可以用cookie,但是最可靠的方法是什麼?可靠地檢測網站的新訪問者

謝謝!

+2

不要想太多。只需使用cookie。如果用戶定期刪除自己的Cookie,他們很可能會了解重複查看此類彈出窗口的後果。 – Chris

回答

0

要做到這一點可靠,你需要使用服務器端腳本。 JavaScript可以被禁用,因此不再可靠。

PHP是簡單的 - 你可以讀取用戶的IP地址和用戶代理(UA)與

<?php 
    $IP = $_SERVER['REMOTE_ADDR']; 
    $UA = $_SERVER['HTTP_USER_AGENT']; 
?> 

存儲該信息到數據庫中,你可以跟蹤用戶。把它與一個cookie結合起來(但是,這可以被用戶刪除),並且你有一個非常好的跟蹤解決方案。

<?php 
    // Set a cookie 
    $userID = 'something'; 
    setcookie('UID', $userID); 

    // Read a cookie 
    echo($_COOKIE['uid']); 
?> 

對Cookie的信息上http://php.net/manual/en/function.setcookie.php看看。

+1

我會說cookie(如果你喜歡,使用LocalStorage)比這更可靠,因爲很多情況下用戶的IP地址會定期改變(即使每個請求發生在某些代理上),或者可能有1000一個IP地址後面的用戶。每臺計算機(實際上都是瀏覽器)都有Cookie,雖然它們可以被禁用,但檢查禁用的Cookie並不顯示彈出窗口是很簡單的,如果是的話。 – Stecman

+0

這是真的。我想它確實歸結爲個人偏好。我使用用戶存儲在cookie中的密鑰將會話存儲在數據庫中。數據庫鎖定該密鑰只能與發起會話的用戶的IP一起工作,除非用戶將其指定爲持久登錄。這似乎解決了改變IP的問題(移動設備非常實際的問題) – cstrat

+0

另一件事 - 本地存儲並不總是可用於用戶瀏覽器。安全策略和舊版瀏覽器可能會造成問題。 – cstrat