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
自定义codeigniter库未返回数据_Codeigniter - Fatal编程技术网

自定义codeigniter库未返回数据

自定义codeigniter库未返回数据,codeigniter,Codeigniter,我制作了一个codeigniter用户登录库,但遇到了一个小问题。当我登录时,它不会返回库中的任何函数,如$this->get_user_username() 在我的仪表板上,我应该能够执行echo$this->user->get_user_username() 我想我知道问题是因为if($this->validate_password($password)){在查询周围。然后停止 我将返回任何数据。 注意:我只希望能够在正在工作的会话中设置用户id。只需将其他id作为变量等返回即可 问题因为我

我制作了一个codeigniter用户登录库,但遇到了一个小问题。当我登录时,它不会返回库中的任何函数,如
$this->get_user_username()

在我的仪表板上,我应该能够执行echo$this->user->get_user_username()

我想我知道问题是因为if($this->validate_password($password)){在查询周围。然后停止 我将返回任何数据。

注意:我只希望能够在正在工作的会话中设置用户id。只需将其他id作为变量等返回即可

问题因为我在登录时使用了
if($this->validate_password($password)){
,一旦登录,它会阻止我检索任何数据,最好的解决方案是什么,所以我仍然可以使用它并检索我的数据

正如我所说,我只想设置用户id 在会议中

仪表板控制器

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class Dashboard extends MX_Controller {
    public function __construct() {
        parent::__construct();
        $this->load->library('admin/user');
    }

    public function index()
    {
        echo $this->user->get_user_username();
        print_r($_SESSION);
        $data['top_navbar'] = Modules::run('admin/common/top_navbar/index');
        $data['column_left'] = Modules::run('admin/common/column_left/index');
        $data['header'] = Modules::run('admin/common/header/index');
        $data['footer'] = Modules::run('admin/common/footer/index');

        $this->load->view('common/dashboard_view', $data);
    }
}

问题解决了我想发布我自己的答案,我必须在用户库的构造区域中添加另一个部分才能使它工作

然后使用会话userdata进行where检查

public function __construct() {
    $this->CI =& get_instance();

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

        $this->CI->db->where('user_id', $this->CI->session->userdata('user_id'));
        $user_query = $this->CI->db->get($this->CI->db->dbprefix . 'user');

        if ($user_query->num_rows() > 0) {
            $row = $user_query->row();
            $this->user_id = $row->user_id;
            $this->user_group_id = $row->user_group_id;
            $this->username = $row->username;
            $this->firstname = $row->firstname;
            $this->lastname = $row->lastname;
            $this->email = $row->email;

            return true;
        } else {
            return false;
        }
    }
}
图书馆

<?php

class User {

    private $user_id;
    private $username;

    public function __construct() {
        $this->CI =& get_instance();

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

            $this->CI->db->where('user_id', $this->CI->session->userdata('user_id'));
            $user_query = $this->CI->db->get($this->CI->db->dbprefix . 'user');

            if ($user_query->num_rows() > 0) {

                $row = $user_query->row();

                $this->user_id = $row->user_id;
                $this->user_group_id = $row->user_group_id;
                $this->username = $row->username;
                $this->firstname = $row->firstname;
                $this->lastname = $row->lastname;
                $this->email = $row->email;

                return true;

            } else {

                return false;
            }

        } else {

            $this->logout();
        }
    }

    public function login($username, $password) {
        if ($this->validate_password($password)) {

            $this->CI->db->where('username', $username);
            $user_query = $this->CI->db->get($this->CI->db->dbprefix . 'user');

            if ($user_query->num_rows() > 0) {

                $row = $user_query->row();

                $this->CI->session->set_userdata(array('user_id' => $row->user_id));

                $this->user_id = $row->user_id;
                $this->user_group_id = $row->user_group_id;
                $this->username = $row->username;
                $this->firstname = $row->firstname;
                $this->lastname = $row->lastname;
                $this->email = $row->email;

                return true;

            } else {

                return false;   

            }

        } else {

            return false;
        }

    }

    public function logout() {
        $this->CI->session->unset_userdata('user_id');

        $this->user_id = '';
        $this->username = '';
    }

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

    public function get_user_group_id() {
        return $this->user_group_id;
    }

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

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

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

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

    public function validate_password($password) {
        if (password_verify($password, $this->stored_hash())) {
            return $password;
        } else {
            return false;
        }
    }

    public function stored_hash() {
        $this->CI->db->where('username', $this->CI->input->post('username')); 
        $query = $this->CI->db->get($this->CI->db->dbprefix . 'user');

        if ($query->num_rows() > 0) {
            $row = $query->row();
            return $row->password;
        } else {
            return false;
        }
    }
}

<?php

class User {

    private $user_id;
    private $username;

    public function __construct() {
        $this->CI =& get_instance();

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

            $this->CI->db->where('user_id', $this->CI->session->userdata('user_id'));
            $user_query = $this->CI->db->get($this->CI->db->dbprefix . 'user');

            if ($user_query->num_rows() > 0) {

                $row = $user_query->row();

                $this->user_id = $row->user_id;
                $this->user_group_id = $row->user_group_id;
                $this->username = $row->username;
                $this->firstname = $row->firstname;
                $this->lastname = $row->lastname;
                $this->email = $row->email;

                return true;

            } else {

                return false;
            }

        } else {

            $this->logout();
        }
    }

    public function login($username, $password) {
        if ($this->validate_password($password)) {

            $this->CI->db->where('username', $username);
            $user_query = $this->CI->db->get($this->CI->db->dbprefix . 'user');

            if ($user_query->num_rows() > 0) {

                $row = $user_query->row();

                $this->CI->session->set_userdata(array('user_id' => $row->user_id));

                $this->user_id = $row->user_id;
                $this->user_group_id = $row->user_group_id;
                $this->username = $row->username;
                $this->firstname = $row->firstname;
                $this->lastname = $row->lastname;
                $this->email = $row->email;

                return true;

            } else {

                return false;   

            }

        } else {

            return false;
        }

    }

    public function logout() {
        $this->CI->session->unset_userdata('user_id');

        $this->user_id = '';
        $this->username = '';
    }

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

    public function get_user_group_id() {
        return $this->user_group_id;
    }

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

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

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

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

    public function validate_password($password) {
        if (password_verify($password, $this->stored_hash())) {
            return $password;
        } else {
            return false;
        }
    }

    public function stored_hash() {
        $this->CI->db->where('username', $this->CI->input->post('username')); 
        $query = $this->CI->db->get($this->CI->db->dbprefix . 'user');

        if ($query->num_rows() > 0) {
            $row = $query->row();
            return $row->password;
        } else {
            return false;
        }
    }
}