您好我正在尝试访问当前会话的时间戳。我正在尝试使用$this->session->userdata('timestamp');
访问其值,但它返回NULL
。我尝试了var_dump($this->session->all_userdata());
,但它似乎只知道$this->session->set_userdata('blah', 'blah');
设置的变量。
Config看起来像:
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 0;
$config['sess_save_path'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
它可以存储数据库中会话的ip_address,timestamp,id,但我试图找到一种方法来访问该数据库中的值。
例如,我已完成var_dump($this->session->all_userdata());
我将看到的是一个值为'blah'的数组,而不是存储在表中的值。
我做错了吗?
答案 0 :(得分:1)
CI_Session
专用于此主题的手册的一部分:http://www.codeigniter.com/userguide3/libraries/sessions.html#accessing-session-metadata
正如您从该链接中可以理解的那样,没有直接的方式来访问会话时间戳。如果您正在使用数据库驱动程序,则必须从数据库中获取它 - 没有别的办法。
答案 1 :(得分:0)
使用:
$this->session->__ci_last_regenerate
或
$_SESSION['__ci_last_regenerate']
答案 2 :(得分:-1)
您是否将时间戳存储到用户数据中?如果是,则只有您需要获得会话的当前时间戳,然后才需要使用以下代码。
$sessionData = $this->session->all_userdata();
SessionData contain following array values and you can use the `last_activity`
Array
(
[session_id] => 4a5a5dca22728fb0a84364eeb405b601
[ip_address] => 127.0.0.1
[user_agent] => Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7;
[last_activity] => 1303142623
)
获取更多帮助
https://ellislab.com/codeigniter/user-guide/libraries/sessions.html