从逻辑上讲,一旦用户退出,他们必须重新登录才能再次进入系统。我使用登录用户的一些会话数据和 cookie,我想在用户注销时删除这些会话数据和 cookie。我用
delete_cookie("cookie_name");
$this->session->sess_destroy();
并设置$config['sess_time_to_update']
ro 0
但这不起作用,会话数据和 cookie 没有被删除。用户注销后,我可以做些什么来删除所有会话数据和 cookie。
从逻辑上讲,一旦用户退出,他们必须重新登录才能再次进入系统。我使用登录用户的一些会话数据和 cookie,我想在用户注销时删除这些会话数据和 cookie。我用
delete_cookie("cookie_name");
$this->session->sess_destroy();
并设置$config['sess_time_to_update']
ro 0
但这不起作用,会话数据和 cookie 没有被删除。用户注销后,我可以做些什么来删除所有会话数据和 cookie。
尝试这个 -
http://php.net/manual/en/function.setcookie.php
// unset cookies
if (isset($_SERVER['HTTP_COOKIE'])) {
$cookies = explode(';', $_SERVER['HTTP_COOKIE']);
foreach($cookies as $cookie) {
$parts = explode('=', $cookie);
$name = trim($parts[0]);
setcookie($name, '', time()-1000);
setcookie($name, '', time()-1000, '/');
}
}
$this->session->sess_destroy();
应该删除所有会话数据。你怎么知道会话数据没有被删除。就在 sess_destroy() 之后;尝试回显其中一个会话数据。
echo $this->session->userdata('item_name');
以同样的方式在删除这样的 cookie 后使用 echo -
echo get_cookie('cookie_name');
我相信,这是用户如何保持登录的逻辑。您可能没有检查登录用户的会话是否存在。您应该检查用户访问的每个页面(方法)的会话和 cookie。最好的方法是将检查器函数放在构造函数中。