![](/img/trans.png)
[英]What is the difference of setcookie() and $_SESSION with session.use_only_cookies?
[英]use of session and cookies what is better
我想獲取第一次加載頁面時的當前時間,然后將該時間與當前時間進行比較,只有當頁面加載時第一次差異超過30分鍾時,才應打開一個新窗口。 我想問這一切我應該使用session或cookies? 我累了使用以下內容:
<input type="hidden" name="time_last_loaded" value="<?php echo strtotime(date("Y-m-d H:i:s")); ?>">
<?
if(isset($_POST['time_last_loaded']))
{
$current_time = strtotime(date("Y-m-d H:i:s"));
$time_last_loaded_plus_30_mins = strtotime('+30 minutes', $_POST['time_last_loaded']));
if($time_last_loaded_plus_30_mins < $current_time)
{
echo "code works";
}
}
?>
但它沒有用,有人試圖找到我編碼的問題嗎? 謝謝!
我也嘗試過這個
$time=time();
$timeend= $time + (1*60);
for($i=1;$i<100;$i++)
{
while($time > $timeend)
{
echo "it works";
$time=time();
}
}
這個簡單的代碼不起作用? 可以告訴嗎?
客戶端.cookies是要走的路。 它會讓服務器在客戶端上不知道(在內存和處理時間方面)發生了什么。 如果窗口應該通過javascript在客戶端打開,並且你沒有與服務器上存儲的時間有任何關系。
會話通常用於為應用程序邏輯唯一地標識客戶端(類似用戶登錄會話)。 如果您不必唯一識別用戶,我建議您使用Cookie。 您也可以使用會話,但這將不必要地在服務器端進行一些處理,看起來對您沒有任何用處。 由你來決定。 但是,如果您不需要唯一標識用戶,那么只需使用Cookie即可。
“如果差異超過30分鍾,我將把時間與當前時間進行比較”。 我沒有完全明白你的意思所以我會盡力回答你的問題。
將打開的新窗口可能意味着兩件事:打開一個新窗口(target =“_ blank”)或重定向到新的URL。 如果你想做第一個,那么你想要做的時間處理必須由Javascript完成和處理,因為你無法從服務器端在瀏覽器中打開一個新窗口。 如果你想做第二個,你可以使用JS在客戶端實現,或者使用你正在使用的任何語言在服務器端實現。
至於你的代碼片段,我認為你沒有正確使用strtotime()。 閱讀本文: http : //php.net/manual/en/function.strtotime.php
我對您的代碼做了一些小改動。 這應該可以,但我自己沒有嘗試過:“>
<?
if(isset($_POST['time_last_loaded']))
{
$current_time = strtotime(date("Y-m-d H:i:s"));
$time_last_loaded_plus_30_mins = strtotime($_POST['time_last_loaded']) + 30*60;
if($time_last_loaded_plus_30_mins < $current_time)
{
echo "code works";
}
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.