我是codeigniter框架的新手。我的页面会话超时有问题。 现在我启用了ip匹配,用户代理匹配但不起作用。 我试过的另一种方法是更新2.1.4库文件并复制到我的系统中 文件夹,但这也没有用。
请帮我解决会话超时问题。以下是我用过的代码 config-> config.php中
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 10;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 10;
我需要增加会话超时时间,但现在我需要检查会话时间 out工作与否。如果这10秒会话时间正常,那么我能够 增加会话时间。
先谢谢你,帮助我。
答案 0 :(得分:1)
最后我找到了问题的解决方案。
以下增加或减少会话超时的方法。 1。
ini_set('session.gc_maxlifetime', 60);
config->config.php
$config['sess_expiration'] = ''; //in seconds.
2
$config['sess_time_to_update'] = '' ;//in seconds (as same in sess_expiration seconds)
3.如果您正在登录控制器和会话数据的所有控制器
$_SESSION['data'] == 'your login id or role or something
。这不会使会话数据达到会话数据。但是我们需要检查$this->session->
userdata('your id or data need to check')
的检查,然后在登录成功后再需要
将值分配给会话$this->session->set_userdata('your id or something');
在检查session = $this->session->userdata()
为空或零时需要session_destory()
,然后需要重定向到您的主页。
另一种增加方式:
我试过的这两种方式,我找到了会话时间的解决方案。对我来说工作正常。
感谢所有人。
答案 1 :(得分:0)
如果您的数据库中没有ci_sessions表,请使用以下脚本创建它。
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) DEFAULT '0' NOT NULL,
user_agent varchar(120) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id),
KEY `last_activity_idx` (`last_activity`)
);
使用$this->session->set_userdata($array);
获取会话数据。然后它应该正常工作