codeigniter dyanamicly中的会话超时 [英] Session Timeout in codeigniter dyanamicly

查看:124
本文介绍了codeigniter dyanamicly中的会话超时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有关于codeigniter超时的问题。

I have issue regarding codeigniter Timeout .

我知道config文件夹手动设置会话超时,如l

I know the config folder setting session timeout manually like as l

$config['sess_expiration']      = 123;

但我需要网站管理管理会话超时dyanamicly进入管理页面

but i need to the website admin manage the session time out dyanamicly in to the admin page

请帮我如何实现这个逻辑

please help me how to implement this logic

我试过这个逻辑但不工作

i tried this logic but not working

$this->session->sess_expiration = "120";

注意:这里我将数据库存储在值中。基于数据库值可以设置为会话到期时间

Note:here i am storing database in the value. based on the database value i can set in to the session expiration time

注意1: $ config ['sess_time_to_update'] = 30; code>此值小于会话过期时间

note 1: $config['sess_time_to_update'] = 30; this value less than of session expiration time

总逻辑代码:

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();       
}


推荐答案

$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 dyanamicly中的会话超时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆