PHP会话MVC使用CodeIgniter



因此,我一直在使用CodeIgniter开发一个简单的登录并插入数据页面,我希望每个用户都有自己的数据保存在DB中,并且每个用户都有自己的DB集。我在这里的重点是首先获得会话,因为我无法从我的代码中获得会话。

我是PHP的新手,甚至以前都不使用PHP。这是我的控制器:

    public function login(){
    $this->load->library('session');
    $email  = $this->input->post('email');
    $password  = $this->input->post('password');    
    log_message('error','isi email : '.$email);
    log_message('error','isi password : '.$password);
    $return = $this->welcome_model->checkLogin($email, $password);
    if($return){
    $this->session->set_userdata('email',$email);
    $var = $this->session->userdata;
    redirect('welcome/masuk');}

模型:

public function checkLogin($email, $password)
{
    $return = $this->db->get_where('login',array('email'=>$email, 'password' => $password));
    if($return->result_array() != NULL){
        return TRUE;
    }else{ 
        return FALSE;
    }
}

查看:

<form action="<?php echo base_url(); ?>welcome/login" method="post">
    <input type="email" class="form-control" name="email" placeholder="Email">
    <input type="password" class="form-control" name="password" placeholder="Password">
    <button type="submit" class="btn btn-primary btn-block btn-flat">Sign In</button>
    </form>

任何帮助将不胜感激!谢谢!

好吧,我认为您在考虑进行登录页面时需要查看以下几点: -

 1. $this->load->library('session');  //Try to put this in autoload.php in application/config.
    $autoload['libraries'] = array('session');
2. <form action="<?php echo base_url(); ?>welcome/login" method="post">
   You can replace this in view with 
   <?= form_open() ?>....CODE....<?= form_close() ?>
3. Try to use form-validation rules something like this
   $this->form_validation->set_rules(
        'title', 
        'Title', 
        'required|min_length[20]');

是,是为了将所有用户分开,您需要做一些将每个用户分开的操作

用户指南参考:https://www.codeigniter.com/user_guide/

那是我的登录页面,按照我的应用程序要求

public function login() 
{
    $data = $this->data;   
    if(isset($this->session->userdata('user_id')))
    {
        redirect('dashboard');
    }
    $this->form_validation->set_rules(
                                    'username', 'Username',
                                    'required|min_length[5]'
    );
    $this->form_validation->set_rules(
                                    'password', 
                                    'Password', 
                                    'trim|required|min_length[6]'
    );   
    if ($this->form_validation->run() == FALSE)
    {
         $this->template->set('title', 'Login');
         $this->template->load('main', 'contents' , 'login', $data);
    }
    else
    {
        $username = $this->input->post('username');
        $password = $this->input->post('password');  
        if ($this->main_model->resolve_user_login($username, $password)) 
        {
            $user_id = $this->main_model->get_user_id_from_username($username);
            $user    = $this->main_model->get_user($user_id);        
            $this->session->user_id      = (int)$user->id;
            $this->session->username     = (string)$user->username;
            $this->session->name         = (string)$user->name;
            $this->session->password     = (string)$user->password;
            $this->session->created_at   = (bool)$user->created_at;
            $this->session->blog_id      = (bool)$user->blog_id;   
            $this->session->logged_in    = (bool)true;
            redirect('dashboard');
        } 
        else 
        {
             $this->template->set('title', 'Login');
             $this->template->load('main', 'contents' , 'login', $data);
        }
    }
}

最新更新