Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何设置RememberMe CodeIgniter Spark_Php_Codeigniter - Fatal编程技术网

Php 如何设置RememberMe CodeIgniter Spark

Php 如何设置RememberMe CodeIgniter Spark,php,codeigniter,Php,Codeigniter,我正在尝试设置joeauty/Memberme CodeIgniter火花。我在config forler中添加了rememberme.php,在system/libraries中添加了rememberme.php/在autoload.php和config.php中进行了更改,并在数据库中创建了两个表(ci_cookies和ci_会话)。 如果不单击复选框,我可以登录,但如果选中复选框,则不会发生任何事情 这是我的控制器: function __construct() { parent:

我正在尝试设置joeauty/Memberme CodeIgniter火花。我在config forler中添加了rememberme.php,在system/libraries中添加了rememberme.php/在autoload.php和config.php中进行了更改,并在数据库中创建了两个表(ci_cookies和ci_会话)。 如果不单击复选框,我可以登录,但如果选中复选框,则不会发生任何事情

这是我的控制器:

function __construct()
 {
   parent::__construct();
   $this->load->model('registerclient_model','',TRUE);
 }

  function index()
  {

    if($this->session->userdata('logged_in') || $this->session->userdata('user_id'))
      { redirect('client_private_area', 'refresh');}

    else{

      $this->load->library('form_validation');

      $this->form_validation->set_rules('email_address', 'Email', 'trim|required|xss_clean');
      $this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean|callback_check_database');

      if($this->form_validation->run() == FALSE)
      {
        $data['error'] = 'Invalid email address and/or password.';
        $this->load->view('templates/header');
        $this->load->view('pages/login/client_login', $data);
        $this->load->view('templates/footer');
      }
      else
      {
        //Go to private area
        redirect('client_private_area', 'refresh');
      }
    }

  }

function check_database($password)
  {
    $email = $this->input->post('email_address');
    $result = $this->registerclient_model->login($email, $password);

    if($result){

      if($this->input->post('netid') == "on"){

        $this->rememberme->setCookie($this->input->post('netid'));

        if ($this->rememberme->verifyCookie()) {
            // find user id of cookie_user stored in application database
            $user = User::findUser($cookie_user);
            // set session if necessary
            if (!$this->session->userdata('user_id')) {
                $this->session->set_userdata('user_id', $user);
            }
            $this->user = $user;
        }
        else if ($this->session->userdata('user_id')) {
            $this->user = $this->session->userdata('user_id');
        }
      } 
      else
      {
        $sess_array = array();
        foreach($result as $row)
        {
          $sess_array = array(
            'id' => $row->id,
            'first_name' => $row->first_name,
            'email_address' => $row->email_address
          );
          $this->session->set_userdata('logged_in', $sess_array);
        }
        return TRUE;
      }
    }
    else
    {
      $this->form_validation->set_message('check_database', 'Invalid email address and/or password.');
      return false;
    }
  }
这是我的模型:

function login($email, $password) {
    //create query to connect user login database
    $this->db->select('id, first_name, email_address, password');
    $this->db->from('client_register');
    $this->db->where('email_address', $email);
    $this->db->where('password', $this->registerclient_model->hash($password));
    $this->db->limit(1);

    //get query and processing
    $query = $this->db->get();
    if($query->num_rows() == 1) 
    {
      return $query->result(); //if data is true
    } 
    else 
    {
      return false; //if data is wrong
    }
  }
我的看法是:

<div class="client_login_content_form"> 
    <h1>CLIENT LOGIN FORM</h1>
      <p class="loginform_error"><?php echo validation_errors(''); ?></p>
      <?php echo form_open('verifylogin'); ?>
        <ul>
          <li><input type="text" size="20" id="email" name="email_address" value="<?php echo set_value('email_address'); ?>" required placeholder="Email Address"/></li>
          <li><input type="password" size="20" id="passowrd" name="password" value="<?php echo set_value('password'); ?>"  required placeholder="Password"/></li>
          <li><p><input type="checkbox" name="netid" id="netid" checked>Remember me</p></li>
          <li><input type="submit" class="login_content_form_button" value="LOG IN"/></li>
        </ul>
        <p class="forgot_login"><a href="<?php echo site_url('verifylogin/forgot'); ?>">Forgot your password?</a></p>
      </form>
  </div>
  <form action="<?php echo site_url('admin'); ?>"><input type="submit" value="Admin" class="admin_button" /></form>

客户端登录表单


  • 您没有将sparks安装到您的
    /应用程序
    文件夹中,而是安装在
    sparks
    文件夹中。请参阅:这可能也有帮助:因此,为了使用RememberMe,我必须在我的项目中安装Spark Manager文件夹?是的
    Memberme
    是一个spark,所以它需要作为一个spark安装。谢谢,我不知道。