2013-02-28 47 views
0

我試圖爲我的用戶尚未見過的內容顯示[NEW]標記。如何爲使用Cookie的用戶標記新內容

遺憾的是大多數用戶都是客人,而我不希望寫在數據庫中的每個IP和存儲最後訪問時間。

所以我想我可以用餅乾做到這一點,這裏是帽子我寫道:

if ($_SERVER['SCRIPT_NAME'] == "/index.php" || $_SERVER['SCRIPT_NAME'] == "/browse.php"){ 
if (!$CURUSER) 
setcookie("lastbrowse", time(), time()+3600*24); 
} 

好,我能勝任這份例如一些地區更容易,但是這是做的伎倆部分爲客人。

Cookie設置正常,我得到cookie中的時間戳。

我做了檢查後:

if (strtotime($row["added"]) > $_COOKIE["lastbrowse"]) 
$new = " <span style='color:#002F4E;font-weight:bold'>[NEW]</span>"; 

因此,如果消息是在上次訪問後添加,用戶通過標題看到[NEW]標籤。

問題是我不知道我不能更新餅乾,每次用戶刷新頁面,我只能設置新的cookie一旦這個已過期。

我該如何完成[NEW]標記?

+1

我不確定這是完全正確的。您肯定可以在cookie過期之前更新它。但是,您應該在setcookie()後立即更新$ _COOKIE數組。 這樣,一旦呈現,它採用了最新的價值,而不是當腳本是由瀏覽器 – Sleavely 2013-02-28 15:39:22

+0

搞怪它沒有更新啓動時存在的一個,然後我刪除了cookie,並沒有它更新所有的時間。由於某種原因必須被鎖定。謝謝 – Treat 2013-02-28 16:48:35

回答

0

正如@Sleavely提到的,你可以更新餅乾,所以我的代碼工作,對大家都有好處誰需要類似的東西!

相關問題