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