Php codeigniter动态中的会话超时
我有关于codeigniter超时的问题 我知道像l一样手动设置会话超时的配置文件夹Php codeigniter动态中的会话超时,php,codeigniter,codeigniter-2,Php,Codeigniter,Codeigniter 2,我有关于codeigniter超时的问题 我知道像l一样手动设置会话超时的配置文件夹 $config['sess_expiration'] = 123; 但我需要网站管理员管理会话超时动态到管理员页面 请帮助我如何实现这个逻辑 我试过这个逻辑,但不起作用 $this->session->sess_expiration = "120"; 注意:这里我将数据库存储在值中。根据数据库值,我可以将其设置为会话过期时间 注1:$config['sess\u time\u to\u
$config['sess_expiration'] = 123;
但我需要网站管理员管理会话超时动态到管理员页面
请帮助我如何实现这个逻辑
我试过这个逻辑,但不起作用
$this->session->sess_expiration = "120";
注意:这里我将数据库存储在值中。根据数据库值,我可以将其设置为会话过期时间
注1:$config['sess\u time\u to\u update']=30代码>此值小于会话到期时间的
总逻辑代码:
public function edit($id)
{
Assets::add_css('../plugins/forms/uniform/uniform.default.css');
Assets::add_css('../plugins/forms/select/select2.css');
Assets::add_css('../plugins/forms/validate/validate.css');
Assets::add_css('../plugins/misc/qtip/jquery.qtip.css');
Assets::add_js('../plugins/charts/sparkline/jquery.sparkline.min.js');
Assets::add_js('../plugins/forms/uniform/jquery.uniform.min.js');
Assets::add_js('../plugins/forms/select/select2.min.js');
Assets::add_js('../plugins/forms/validate/jquery.validate.min.js');
Assets::add_js('../plugins/forms/wizard/jquery.bbq.js');
Assets::add_js('../plugins/forms/wizard/jquery.form.js');
Assets::add_js('../plugins/forms/wizard/jquery.form.wizard.js');
Assets::add_module_js('setting','setting');
if ($_POST)
{
$current_date = date("Y-m-d H:i:s");
$data = array(
's_meta_value' => $this->input->post('s_meta_value'),
'updated_on' => $current_date
);
$this->setting_model->session_mng_update($data,$id);
$session_val= $this->input->post('s_meta_value');
if($session_val == 0)
{
$this->session->sess_expiration = '0';
}
else
{
$this->session->sess_expiration = "120";
// $val1 = $this->config->item('sess_expiration');
// print_r($val1);
//$session_seconds = ($session_val*60);
$val2 = $this->config->set_item('sess_expiration',50);
$this->session->CI_Session();
//$val1= $this->config->set_item('sess_expiration',50);
$val3 = $this->config->item('sess_expiration');
print_r($val3);exit;
}
Template::redirect('setting/setting/display');
}
$val3 = $this->config->item('sess_expiration');
print_r($val3);exit;
$data = $this->setting_model->session_mng_edit($id);
Template::set('page_title', 'Edit Session Management');
Template::set('data', $data);
Template::set_view('setting/session_management/edit_session_management');
Template::render();
}
首先,您可以通过$this->input->set_cookie()
为此过程设置cookie。但是,如果要覆盖配置变量,请尝试
$this->config->set_item('sess_expiration',120);
还可以调用会话构造函数来更新值
$this->session->CI_Session();
您应该使用如下内容:
$remember_me = $this->input->post('remember_me');
if ($remember_me == 'remember_me')
{
//set session to non-expiring
$this->session->sess_expiration = '32140800'; //~ one year
$this->session->sess_expire_on_close = 'false';
#$this->session->set_userdata($session_data);
}
else
{
//set session expire time, after that user should login again
$this->session->sess_expiration = '1800'; //30 Minutes
$this->session->sess_expire_on_close = 'true';
#$this->session->set_userdata($session_data);
}
//set session and go to Dashboard or Admin Page
$this->session->set_userdata(array(
'id' => $result[0]['id'],
'username' => $result[0]['username']
));
现在,它在篝火codeigniter中不起作用。我正在使用codeigniterNouphal plz的篝火HMVC。再次参考上述代码。我已经更新了代码打印输出是多少($val3);exitjust我正在调试这里我正在识别配置值集,或者没有我得到了答案:first config>config.php文件注释或删除此//$config['sess\u expiration']=7200;//此sess expertime逻辑写在config/application文件夹中,您将进入config>appliction.php文件夹执行此操作一次(BASEPATH.database/DB.EXT)$query=DB()->select('s_meta_value')$query=DB()->get('lr_settings_meta')$res=$query->result()$理想时间=$res[0]->s_meta_值;如果($ideal_time){$session_seconds=($ideal_time*60);$config['sess_expiration']=“$session_seconds”;}否则{$config['sess_expiration']=7200;}