Codeigniter 无法登录,显示未找到对象

Codeigniter 无法登录,显示未找到对象,codeigniter,Codeigniter,admin/views/login.php <?php $this->load->library('form_validation'); ?> <?php echo validation_errors(); ?> <?php echo form_open('cpages/ceklogin'); ?> <div class="login-card"> <center><?php //echo $warning; ?>

admin/views/login.php

<?php $this->load->library('form_validation'); ?> <?php echo validation_errors(); ?> <?php echo form_open('cpages/ceklogin'); ?> <div class="login-card"> <center><?php //echo $warning; ?> <?php echo $this->session->flashdata('warning'); ?> </center> <h2>Gionda CMS Login</h2><br> <form> <div class="login"><input type="text" name="username" placeholder="Username"></div> <div class="login"><input type="password" name="password" placeholder="Password"></div> <br> <input type="submit" name="login" class="login login-submit" value="login"> </form> <div class="login-help"> <a href="#">Register</a> • <a href="#">Forgot Password</a> </div> </div>
models/Mpages.php

public function login()
    {
        $query = $this->db->get('login');
        return $query->result();
    }
用户名电子邮件密码角色

使用者user@mail.com12345管理员 用户2user2@mail.com$2y$10$PrDTzzETQ.NzI9eIN0WYDubhBZhkg9XEo10MxRYpv4M经理

我尝试使用用户名:用户密码:12345登录,但尚未成功登录。我想知道为什么

找不到对象

在此服务器上找不到请求的URL。参考页面上的链接似乎错误或过时。请将错误告知该页的作者

如果您认为这是服务器错误,请联系网站管理员

我想知道它的路线:

routes.php

 $route['default_controller'] = 'cpages/login';
    $route['cpages/login'] = 'cpages/login';

无需调用models方法。您可以在控制器上获取表数据。请这样尝试

public function ceklogin() {
        $username = $this->input->post('username');
        $password = $this->input->post('password');
        $this->db->where('username', $username);
        $this->db->where('password', $password);
        $query=$this->db->get('login');
        if ($query->num_rows() >= 1)
             {
                // echo 'LOGIN BERHASIL !';
                $data['login']=$query->result();  //returns data in object format
                $this->load->view('index', $data);
             }
        else
            {
                // echo 'LOGIN GAGAL !';
                $this->session->set_flashdata('warning', 'Your username and password are wrong !');
                //$data['warning']='Your username and password are wrong !';
                $this->load->view('login');
            }           
    } 
foreach($login as $l)
{
echo $l->username."<br/>";
echo $l->password;
so on..
}
在您的视图中,使用
foreach
循环获取数据

public function ceklogin() {
        $username = $this->input->post('username');
        $password = $this->input->post('password');
        $this->db->where('username', $username);
        $this->db->where('password', $password);
        $query=$this->db->get('login');
        if ($query->num_rows() >= 1)
             {
                // echo 'LOGIN BERHASIL !';
                $data['login']=$query->result();  //returns data in object format
                $this->load->view('index', $data);
             }
        else
            {
                // echo 'LOGIN GAGAL !';
                $this->session->set_flashdata('warning', 'Your username and password are wrong !');
                //$data['warning']='Your username and password are wrong !';
                $this->load->view('login');
            }           
    } 
foreach($login as $l)
{
echo $l->username."<br/>";
echo $l->password;
so on..
}
foreach($l登录)
{
echo$l->username.“
”; echo$l->密码; 等等。。 }
下面是一个示例,说明如何在模型中完成我的工作

我认为您使用的是php哈希

一旦创建哈希

然后你需要验证它

我自己我自动加载我的模型但你不必

$autoload['libraries'] = array('database', 'session');

$autoload['model'] = array('user/user_model');
模型

文件名:User_model.php首字母全大写

<?php

class User_model extends CI_Model {

    public $table_name = 'user';

    private $user_id;
    private $username;
    private $firstname;
    private $lastname;
    private $email;

    public function __construct() {
        parent::__construct();

        if ($this->session->userdata('user_id')) {

            $this->db->select('user_id, username, firstname, lastname, email, date_joined');
            $this->db->from($this->db->dbprefix . $this->table_name);
            $this->db->where('user_id', $this->session->userdata('user_id'));
            $this->db->where('status', '1');
            $user_query = $this->db->get();

            if ($user_query->num_rows() == 1) {

                $this->user_id = $user_query->row()->user_id;
                $this->username = $user_query->row()->username;
                $this->firstname = $user_query->row()->firstname;
                $this->lastname = $user_query->row()->lastname;
                $this->email = $user_query->row()->email;
            }

        } else {
            $this->logout();
        }
    }

    public function logout() {
        unset($_SESSION['user_id']);

        $this->user_id = '';
        $this->username = '';
        $this->firstname = '';
        $this->lastname = '';
        $this->email = '';
    }

    public function login($username, $password) {
        if ($this->validate_password($username, $password)) {
            $this->db->select('user_id, username, firstname, lastname, email, date_joined');
            $this->db->from($this->db->dbprefix . $this->table_name);
            $user_query = $this->db->get();

            if ($user_query->num_rows() == 1) {

                $this->session->set_userdata('user_id', $user_query->row()->user_id);

                $this->user_id = $user_query->row()->user_id;
                $this->username = $user_query->row()->username;
                $this->firstname = $user_query->row()->firstname;
                $this->lastname = $user_query->row()->lastname;
                $this->email = $user_query->row()->email;

                return TRUE;
            } else {
                return FALSE;
            }

        }
    } 

    public function validate_password($username, $password) {
        $stored_password = $this->get_this_users_password($username);

        if (password_verify($password, $stored_password)) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    public function get_this_users_password($username) {
        $this->db->where('username', $username);
        $query = $this->db->get($this->db->dbprefix . $this->table_name);

        return $query->row()->password;
    }

    public function get_this_users_id() {
        return $this->user_id;
    }

    public function get_this_users_username() {
        return $this->username;
    }

    public function get_this_users_firstname() {
        return $this->firstname;
    }

    public function get_this_users_lastname() {
        return $this->lastname;
    }

    public function get_this_users_email() {
        return $this->email;
    }
}

我看不到视图部分。我仍然得到相同的错误出现:-对象未找到!发布你的
索引
视图。你尝试过任何答案吗?别忘了接受那些有效的答案。答案对我来说很难理解。或者,如果你有一个帐户,它将更容易看到。我发布了相同的问题。我仍然可以使用相同的视图,对吗?这只是一个例子。我注意到的一件事是,您需要了解在何处加载帮助程序和库等。您已经加载了form_验证库,应将其加载到控制器上,因为您需要正确阅读此处。我注意到您在此处也更改了您的用户配置文件名。放置位置:公共函数validate_password($username,$password){//从DB$stored_password=$this->Get_this_users_password($username);if(password_verify($password,$stored_password)){返回真;}否则{返回假;}
public function __construct() {
   parent::__construct();
   $this->load->model('user/user_model');
   $this->load->library('form_validation');
}

public function login() {
    $this->form_validation->set_rules('username', 'username', 'trim|required');
    $this->form_validation->set_rules('password', 'password', 'trim|required');

    if ($this->form_validation->run() == FALSE) {

       // login view

    } else {

       $login = $this->user_model->login($this->input->post('username'), $this->input->post('password'));

       if ($login == true) {
           redirect('some-controller');
       } else {
           set a error or reload login view.
       }
    }
}