簡體   English   中英

使用會話和cookie更好

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM