CodeIgniter:当页面重新加载,它需要一个旧的session_id存储在会话cookie


CodeIgniter: when page reloads, It takes an old session_id stored in session cookie.

我有一个codeigniter/php网站和flex应用程序。

我用用户名"jhon"登录,做所有的事情,然后注销。

然后,如果我从网站作为用户"bob"登录,我将在codeigniter会话中设置一个新的会话数据,如用户名,userId, firstName等。并且我刚刚记下了codeIgniter session_id。

然后重定向用户到flex应用程序,当用户"bob"从app返回到网站时,默认codeigniter从session-cookie中获取一个session_id,这与我重定向"bob"到flex应用程序之前看到的不同。

,我注意到这个改变的session_id是属于用户"jhon"。

我没有在注销时使用$this->session->sess_destroy();,只是使用unset_userdata()取消所有会话数据

下面是my config.php的session和cookie设置。

config['sess_cookie_name']      = 'cisession';
$config['sess_expiration']      = 7200;
$config['sess_encrypt_cookie']  = FALSE;
$config['sess_use_database']    = TRUE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

$config['cookie_prefix']    = "";
$config['cookie_domain']    = "";
$config['cookie_path']      = "/";

我使用数据库和表"ci_sessions"来存储会话。我主要在chrome浏览器中看到这个问题,在系统重启后也是如此。

意味着我作为一个"约翰"登录,做这个和那个…退出. .重新启动系统…再次以"bob"登录,重定向到flex app..回到codeigniter网站。我正在登录为"jhon"....

有什么问题吗?

问题是你不使用$this->session->sess_destroy();,它从数据库中杀死session_id