我正在开始会议
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
引起的。但是我该如何实现缓存呢?
答案 0 :(得分:0)
您需要在$ _SESSION中检查Cookie。 在$ _COOKIE中查看它们。
例如:
if($_COOKIE['cookie'])
{
//success
}
else
{
//Authenticate user
}
答案 1 :(得分:0)
Cookie与会话变量无关(除了PHP内部使用名为PHPSESSID
的cookie将客户端连接到其会话之外)。使cookie过期对具有相同名称的会话变量没有任何影响。如果要测试cookie是否已过期,请使用:
if (isset($_COOKIE['cookie']))