我在codeigniter中有一个登录页面,但它不起作用

时间:2017-06-13 12:00:17

标签: php codeigniter login

我正在使用Codeigniter登录系统。我没有错误,但它不起作用。

这是我的表格:

<div class="row">
<div class="col-md-4 offset-md-4 bg-primary">
    <?php echo validation_errors() ?>
    <?php echo form_open('admin') ?>
    <h3 class="text-center"><?php echo $title ?></h3><hr>
    <div class="form-group">
        <label>UserName:</label>
        <input type="text" name="username" class="form-control" placeholder="username">
    </div>
    <div class="form-group">
        <label>Password:</label>
        <input type="password" name="password" class="form-control" placeholder=" password">
    </div>
    <div class="form-group">
        <input type="submit" name="submit" class="form-control btn btn-success" value="Log in">
    </div>
    <?php echo form_close() ?>
</div>

控制器:

class admin extends CI_Controller{
//login
public function index(){
    $data['title'] = 'Login';
    $this->form_validation->set_rules('username','Username','required');
    $this->form_validation->set_rules('password','Password','required');

    if($this->form_validation->run() === false ){
        $this->load->view('admin/header',$data);
        $this->load->view('admin/login_form',$data);
        $this->load->view('admin/footer');
    }
    else{
        $this->load->model('admin_model');
        $username = $this->input->post('username');
        $password = md5($this->input->post('password'));
        $user_id = $this->admin_model->login($password,$username);
        if($user_id){
            $userdata = array(
            'username' => $username,
            'logged_in' => true
            );
            $this->session->set_userdata('logged_in', $userdata);
            $this->session->set_flashdata('logged_in','you are now logged in');
            die('success');
        }
        else{
            $this->session->set_flashdata('login_failed', 'login credential are wrong');
            die('fail');
       }
     }
   }
 }

这是模型:

<?php 
class admin_model extends CI_Model{
    public function __construct(){
        $this->load->database('theory');
    }
    //login 
    public function login($username,$password){
        $this->db->where('username',$username);
        $this->db->where('password',$password);
        $result = $this->db->get('users');
        if($result->num_rows() == 1){
            return $result->row(0)->id;
        }
        else{
            return false;
        }
    }
}

?>

它没有错误,但也没有工作,我无法理解为什么。 请帮助人

1 个答案:

答案 0 :(得分:5)

$user_id = $this->admin_model->login($password,$username);

应该是

$user_id = $this->admin_model->login($username,$password);