【问题标题】:remember me using codeigniter记得我使用 codeigniter
【发布时间】:2014-10-01 14:01:24
【问题描述】:

嗨,我在我的网站上有这个记住我,我希望它能够工作。我注意到我的代码不起作用。下面是我的代码

public function __construct(){
    parent::__construct();
    $this->load->model('login_model', 'lm');
    $this->load->model('users_model', 'um');
    if($this->input->post('remember_me')){
      $this->config->set_item('sess_expire_on_close', '0');
      //echo $this->input->post( 'remember_me' ); exit;
    }
    if($this->session->userdata('loggedIn')){
      redirect('profile');
    }
  }

我的 config.php 文件

$config['sess_cookie_name']     = 'ci_session';
$config['sess_expiration']      = 7200;
#$config['sess_expire_on_close']    = FALSE;
$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']        = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

我已经将 sess_expire_on_close 代码设置为 TRUE 有人可以在记住我的部分给我更好的代码方式吗? 非常感谢任何帮助,谢谢

【问题讨论】:

    标签: codeigniter remember-me


    【解决方案1】:

    我建议将$this->load->library('session'); 放入您的构造函数中 试试这样的:

    public function __construct(){
        parent::__construct();
        $this->load->library('session');
        $this->load->model('login_model', 'lm');
        $this->load->model('users_model', 'um');
        if($this->input->post('remember_me')){
                $this->session->set_userdata(''); // Here put what you want to save
                redirect('somewhere,'refresh');
        }
        if($this->session->userdata('loggedIn')){
          redirect('yourlink/controller/logout');
        }
      }
    function logout(){ //Function for logging out
            $this->session->sess_destroy();
            redirect('documents/index','refresh');
        }
    

    我还建议检查用户是否属于特定类型,例如管理员、版主、用户等。如果你有登录系统,那么你可能想要这样检查:

    $userType = $this->yourmodel->checkuser($this->input->post('username'),$this->input->post('password'));
    if($userType == 1 || $userType == 2)
    {
    $this->session->set_userdata('userType');
    redirect('somewhere','refresh');
    ...
    }
    

    希望对你有帮助:)

    干杯

    【讨论】:

    • 您需要将记住我的值保存在某处,以便您可以在会话中使用它。代码需要稍作修改,它在我的情况下工作。
    • 那么在我的情况下需要 set_userdata 什么?用户名?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    相关资源
    最近更新 更多