-7

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

index.php应该创建一个cookie

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

4

2 回答 2

4

在登录或创建 cookie 时使用此方法

setcookie("user", "User Name", time()+5*60);

setcookie() 方法的语法是 -

setcookie(name, value, expire, path, domain); 

expirecookie 过期的时间在哪里,您可以通过在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>
于 2013-10-20T05:52:14.117 回答
0
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);
}
}
于 2013-10-20T09:56:54.043 回答