блокировка сессии php - PullRequest
       1

блокировка сессии php

0 голосов
/ 04 марта 2011

Я хочу, чтобы фрагмент кода

 echo "This is a test";

печатался один раз в час.Поэтому, когда пользователь загружает index.php в первый раз, он должен быть напечатан.Когда пользователь сразу после этого перезагрузит страницу, она должна исчезнуть.Через час он должен быть напечатан снова ... Как я могу это сделать?Спасибо.

Ответы [ 3 ]

4 голосов
/ 04 марта 2011

Это должно работать:

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
 }
3 голосов
/ 04 марта 2011

Вместо сессий, установите 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
}
0 голосов
/ 04 марта 2011

вы можете установить текущее время в переменную $ _SESSION и, если пользователь меняет страницу, проверить переменную времени сеанса. и если это время больше одного часа, то выведите сообщение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...