Я хочу, когда пользователь придет на мою страницу index.php
. Он должен создать файл cookie с истечением срока действия, и если пользователь снова попытается посетить эту страницу за 5 минут, он должен быть перенаправлен на страницу с показателем USER TIMEOUT.
index.php
должен создать файл cookie
Если через 5 минут пользователь снова посещает эту страницу, он должен получить сообщение USER TIMEOUT
.
Используйте это при входе в систему или методе при создании файлов cookie.
setcookie("user", "User Name", time()+5*60);
Синтаксис метода setcookie ()
setcookie(name, value, expire, path, domain);
где expire
– время, в течение которого cookie истекает, вы можете дать это время относительно текущего времени, добавив несколько секунд к значению, возвращаемому методом time()
, name
– это имя файла cookie, по которому это значение будет доступ, а value
– значение. См. Документацию здесь .
И на другой странице,
if (!isset($_COOKIE["user"])) header("Location:timeout.php");
Методы setcookie () и header () должны быть вызваны до отправки вывода. Альтернатива (немного сложная) header (), которую вы можете сделать –
if (!isset($_COOKIE["user"])) echo '<script type="text/javascript"> document.location = "timeout.php"; </script>';
Это перенаправит страницу с помощью javascript.
Содержание index.php-
<?php session_start(); if(!isset($_SESSION['visited'])) { $_SESSION['visited'] = time(); setcookie("user", "User Name", time()+5*60); } else { if(!isset($_COOKIE["user"])) header("Location:timeout.php"); } ?> <html><body>This is my page</body></html>
Содержимое timeout.php-
<?php session_start(); unset($_SESSION['visited']); ?> <html><body>Timeout, again go to <a href="index.php">main page</a></body></html>
с<?php session_start(); unset($_SESSION['visited']); ?> <html><body>Timeout, again go to <a href="index.php">main page</a></body></html>
if(!isset($_COOKIE["user"])) { $expire=time()+60*60*24*30; setcookie("user", "Alex Porter", $expire); //cookie for 5 mins $time = time()+60*5; setcookie("page_auth", "Alex Porter", $time); } else { if(isset($_COOKIE["page_auth"])) { header('location:timeout.php'); setcookie("user", "", time()-3600); } }