在Cakephp中,什么是Session-> valid()?

时间:2009-07-20 20:44:23

标签: session cakephp

我知道这个方法回答了“当前会话是否有效?”的问题,但我不明白为什么它会无效。我已经阅读了这种方法的来源,但我仍然没有得到它。从我可以收集到的,它与会话数据是否已过期有关,但我不确定。

这可能与旧版本的Cake有关,因为我在最新的文档中没有看到它,但它在我正在使用的版本中。

2 个答案:

答案 0 :(得分:3)

如果你将其销毁,那将无效。例如,您希望在登录后清除登录用户的所有会话数据。客户端可能会尝试在服务器的下一篇文章中使用内存cookie中的会话ID,但服务器已经破坏了该会话。

if ($this -> Session -> valid())
{
    $this -> Session -> destroy();
    $this -> redirect('/');
}

另一种情况是,如果会话在服务器上超时和/或客户端尝试使用错误/错误的会话ID与服务器同步。

答案 1 :(得分:0)

如果在请求之间更改了useragent(如果启用了检查)或者会话已过期,则可能无效。