2013-10-01 78 views
1

我正在嘗試第一次使用cookie,我不認爲我理解這一點,或者我的代碼正在做一些事情。有人想幫助我回到正確的道路上嗎?PHP cookie和時間

我把重新閱讀php.net幫助,但我覺得我的心是玉米粥現在:/

$currentTime = strtotime("now"); 
$popup_exp = strtotime("+1 hour"); 

if (!isset($_COOKIE['popup_timer'])) : //does cookie exists? if not, make it 
    setcookie("popup_timer", $currentTime); 
endif; 
if(($popup_exp > $_COOKIE['popup_timer'])): 
    //show my popup 
endif; 
+0

你能告訴我們你想什麼,你能指望什麼,或者什麼問題呢? –

+1

抱歉,認爲這很明顯,我的頭腦麻木了!目標:在加載時,cookie被創建,所以它不會執行任何操作。彈出節目。下次用戶在同一小時內查看網站時,網站將隱藏彈出窗口(目標)。我可以得到時間和所有這些,但無法得到這個隱藏正確,或者實際上 –

+0

+1 Ryan是爲了體貼用戶體驗。 –

回答

3

沒有得到你的代碼安靜的好,但你評論

if(!isset($_COOKIE['popup_timer'])) { 
    //Show popup 
    setcookie("popup_timer", '', time()+3600); 
} 

以上只有在未設置$_COOKIE時纔會彈出一個彈出窗口,一旦它彈出彈出窗口,將設置一個過期時間設置爲一小時的cookie。

+0

如果有人解釋downvote的原因,我將不勝感激 –

+2

我只是平平了它。要詳細說明您的代碼,該cookie將在3600秒(一小時)內過期。 –

+0

感謝大家,這個作品......現在我必須弄清楚爲什麼當用戶使用WordPress註銷時cookie不工作。可能是我繼承來解決的主題:/再次感謝!至少我原來的代碼不是太離譜,我知道我有一個WP問題:) –

1

你應該存儲在cookie中的時間比較當前的時間,這樣

$currentTime = strtotime('now'); 

if (!isset($_COOKIE['popup_timer'])) { 
    setcookie('popup_timer', $currentTime); 
} else { 
    if ($currentTime > $_COOKIE['popup_timer'] + 60 * 60) { 
     // If an hour has passed since cookie creation 
     // show your popup 
    } 
} 
+1

當用戶第一次訪問網站時,沒有設置cookie並且彈出窗口不顯示, 。 –