如何确定cookie的有效性?

时间:2015-09-08 15:28:13

标签: php session cookies

我正在开始会议

 session_start(); //So This session will get destroyed when user exit the browser

我将cookie设置为

 setcookie('cookie',$value,time()+3*60);
 $_SESSION['cookie'] = true; //When user log in, I don't need to get the 
                               salt again from db and do all the security 
                               checks. Assume it as a cache

this question建议使用此建议。

问题是,cookie在3分钟后过期。但是会话存在。因此用户尝试在3分钟后登录

    if($_SESSION['cookie'])
    {
      //success
    }
    else
     {
         //Authenticate user
     }

但这是错误的。由于cookie已过期,否则部分应该执行。但如果部分被执行。我知道会话还活着。我该如何处理这种情况?

我理解这是由time()+3*60引起的。但是我该如何实现缓存呢?

2 个答案:

答案 0 :(得分:0)

您需要在$ _SESSION中检查Cookie。 在$ _COOKIE中查看它们。

例如:

if($_COOKIE['cookie'])
{
   //success
}
else
{
     //Authenticate user
}

答案 1 :(得分:0)

Cookie与会话变量无关(除了PHP内部使用名为PHPSESSID的cookie将客户端连接到其会话之外)。使cookie过期对具有相同名称的会话变量没有任何影响。如果要测试cookie是否已过期,请使用:

if (isset($_COOKIE['cookie']))