php会话锁

时间:2011-03-04 19:43:17

标签: php session

我想要代码段

 echo "This is a test";

每小时打印一次。因此,当用户第一次打印时,它会侵入index.php。当用户重新加载页面后,它应该消失。一小时后,它应该再打印一次...... 我怎样才能做到这一点?感谢。

3 个答案:

答案 0 :(得分:4)

这应该有效:

session_start();

if (!isset($_SESSION["last_shown"]))             // If the session variable 
                                                 // was never set
or ($_SESSION["last_shown"] < (time() - 3600))   // or was set more than
                                                 // 1 hour (3600 secs) ago
 {
  echo "This is a test";                         // Make output
  $_SESSION["last_shown"] = time();              // Update session variable 
                                                 // with current time
 }

答案 1 :(得分:3)

而不是会话,将Cookie设置为在1小时后过期。在页面加载时,如果cookie没有显示消息。与会话相比,优势在于用户可以关闭浏览器并稍后返回(如果您需要)

if (!isset($_COOKIE['sesslock']))
{
  // No cookie - show message & set cookie (expires in 1 hour, 3600sec)
  setcookie('sesslock','ok', time()+3600);
  echo "this is a test";
}
else
{
  // The cookie is there, don't display your message
}

答案 2 :(得分:0)

您可以将当前时间设置为$ _SESSION变量,如果用户更改了页面,请检查会话时间变量。 如果该时间超过一小时,则显示消息