使用会话和cookie更好

时间:2012-07-15 07:12:12

标签: php

我想获取第一次加载页面时的当前时间,然后将该时间与当前时间进行比较,只有当第一次加载页面时差异超过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();
      }
  }
这个简单的代码不起作用吗?可以告诉吗?

2 个答案:

答案 0 :(得分:6)

客户端.cookies是要走的路。它会让服务器在客户端上不知道(在内存和处理时间方面)发生了什么。如果窗口应该通过javascript在客户端打开,并且你没有与服务器上存储的时间有任何关系。

答案 1 :(得分:2)

会话通常用于为您的应用程序逻辑唯一地标识客户端(类似于用户登录会话)。如果您不必唯一识别用户,我建议您使用Cookie。您也可以使用会话,但这将不必要地在服务器端进行一些处理,看起来对您没有任何用处。由你来决定。但是,如果您不需要唯一地识别用户,那么只需使用Cookie。

“如果差异超过30分钟,我会将该时间与当前时间进行比较”。我没有完全明白你的意思,所以我会尽力回答你的问题。

将打开新窗口可能意味着两件事:打开一个新窗口(target =“_ blank”)或重定向到新的URL。如果你想做第一个,那么你想要做的时间处理必须由Javascript完成和处理,因为你无法从服务器端在浏览器中打开一个新窗口。如果你想做第二个,你可以使用JS在客户端实现,或者使用你正在使用的任何语言在服务器端实现。

至于你的代码片段,我认为你没有正确使用strtotime()。阅读:http://php.net/manual/en/function.strtotime.php

我对您的代码做了一些小改动。这应该可行,但我自己没有尝试过:     “&GT;

<?
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";
    }
}
?>