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

时间:2013-10-20 05:45:30

标签: javascript php cookies

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

index.php应该创建一个Cookie

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

2 个答案:

答案 0 :(得分:3)

在创建cookie

时,在登​​录或方法上使用此选项
setcookie("user", "User Name", time()+5*60);

setcookie()方法的语法是 -

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

其中 expire 是Cookie过期的时间,您可以通过向{{1}返回的值添加几秒钟来相对于当前时间给出此时间方法, time() 是Cookie的名称,通过该名称可以访问值, name 是值。请参阅文档here

在其他页面上查看 -

value

应该在发送输出之前调用方法setcookie()和header()。您可以使用 -

替代(有点棘手)header()
if (!isset($_COOKIE["user"]))
   header("Location:timeout.php");

这将使用javascript重定向页面。

index.php的内容 -

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

timeout.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>

答案 1 :(得分: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);
}
}