0
为什么当点击“假登录”链接时,第二页加载的会话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';
}
}
请注意,在笨在库中的会话设置为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;
请添加更多示例或场景。我并不真正了解你在问什么。 – CodeGodie
如果你已经自动加载会话,为什么你有这一行:'$ this-> load-> library('session');'? – CodeGodie
而不是破坏会话,使用'$ this-> session-> sess_create();'创建一个全新的会话,它应该清除所有的数据。 – Craig