如何设置 php cookie 的过期时间以及如果 cookie 存在如何将用户重定向到另一个页面

use*_*087 -6 javascript php cookies

我希望当用户来到我的页面时index.php. 它应该创建一个带有过期时间的 cookie,如果用户在 5 分钟内再次尝试访问该页面,他应该被重定向到显示用户超时的页面。

index.php应该创建一个cookie

如果 5 分钟后用户再次访问该页面,他/她应该会收到一条USER TIMEOUT消息。

Rit*_*esh 5

在登录时或创建 cookie 时的方法上使用此选项

setcookie("user", "User Name", time()+5*60);
Run Code Online (Sandbox Code Playgroud)

setcookie() 方法的语法是-

setcookie(name, value, expire, path, domain); 
Run Code Online (Sandbox Code Playgroud)

其中是 cookie 过期的时间,您可以通过在方法expire返回的值上添加几秒来给出相对于当前时间的时间,是 cookie 的名称,通过该名称将访问该值,并且是价值。请参阅此处的文档。time()namevalue

在其他页面上检查-

if (!isset($_COOKIE["user"]))
   header("Location:timeout.php");
Run Code Online (Sandbox Code Playgroud)

setcookie() 和 header() 方法应在发送输出之前调用。header() 的替代方案(有点棘手)你可以用 -

if (!isset($_COOKIE["user"]))
echo '<script type="text/javascript">
          document.location = "timeout.php";
      </script>';
Run Code Online (Sandbox Code Playgroud)

这将使用 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>
Run Code Online (Sandbox Code Playgroud)

timeout.php的内容-

<?php
session_start();
unset($_SESSION['visited']);
?>
<html><body>Timeout, again go to <a href="index.php">main page</a></body></html>
Run Code Online (Sandbox Code Playgroud)