单击“假登录”链接时,为什么第二页上的会话variable
值不可用?
class Fake_login extends CI_Controller {
function __construct() {
parent::__construct();
echo $this->session->userdata('session_id') . '<br>';
// First Page Load: ee3c7c5da6e465605cd57ad699aacdb3
// Second Page Load: c82adf312f123d56e3b7b6ab5ec6cafa
echo $this->session->userdata('variable') . '<br>';
// First Page Load: false
// Second Page Load: false
}
function index($user_id = null){
$this->session->sess_destroy();
$this->load->library('session');
$this->session->set_userdata('variable', 'approved');
echo $this->session->userdata('session_id') . '<br>'; // ee3c7c5da6e465605cd57ad699aacdb3
echo $this->session->userdata('variable') . '<br>'; // approved
echo '<a href="/admin/fake_login/start/' . $user_id . '">Fake Login</a>';
}
function start($user_id = null) {
echo 'here';
}
}
请注意,codeigniter中库中的会话设置为autoload
。
这是我的会话配置:
$config['sess_cookie_name'] = 'cisession';
$config['sess_expiration'] = 172800; // 24 hours
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'cisessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 172800;
答案 0 :(得分:1)
不要简单地破坏会话,而是使用;
$this->session->sess_create();
这将创建一个全新的会话,在此期间销毁任何以前的会话。
我认为这是CI2中的一个错误,已在版本3中修复。
答案 1 :(得分:0)
function __construct() {
parent::__construct();
echo $this->session->userdata('session_id') . '<br>';
// First Page Load: ee3c7c5da6e465605cd57ad699aacdb3
// Second Page Load: c82adf312f123d56e3b7b6ab5ec6cafa
echo $this->session->userdata('variable') . '<br>';
// First Page Load: false
// Second Page Load: false
}
并在
function index($user_id = null){
$this->session->sess_create();//add this
$this->load->library('session');
$this->session->set_userdata('variable', 'approved');
echo $this->session->userdata('session_id') . '<br>'; // ee3c7c5da6e465605cd57ad699aacdb3
echo $this->session->userdata('variable') . '<br>'; // approved
echo '<a href="/admin/fake_login/start/' . $user_id . '">Fake Login</a>';
}
阅读本文