Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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

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 Codeigniter试图在登录控制器中获取非对象错误的属性_Php_Codeigniter - Fatal编程技术网

Php Codeigniter试图在登录控制器中获取非对象错误的属性

Php Codeigniter试图在登录控制器中获取非对象错误的属性,php,codeigniter,Php,Codeigniter,我是新来的。我正在尝试登录注册它。当检查if($user->email)时,会出现错误,表示试图获取此行的非对象的属性。我怎样才能摆脱它。我已经成功地创建了register部分,但在尝试登录时出现了错误。控制器代码在这里 public function home() { $this->load->helper('url'); $this->load->library('form_validation'); $this->load->l

我是新来的。我正在尝试登录注册它。当检查
if($user->email)
时,会出现错误,表示试图获取此行的非对象的属性。我怎样才能摆脱它。我已经成功地创建了register部分,但在尝试登录时出现了错误。控制器代码在这里

public function home() {

    $this->load->helper('url');
    $this->load->library('form_validation');
    $this->load->library('session');

    $this->form_validation->set_rules('username', 'Username', 'required');
    $this->form_validation->set_rules('password', 'Password', 'required|min_length[5]');

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

        $username = $_POST['username'];
        $password = md5($_POST['password']);

        $this->db->select('*');
        $this->db->from('users');

        $this->db->where(array('username' => $username, 'password' => $password));

        $query = $this->db->get();

        $user = $query->row();

        if ($user->email) {

            $this->session->set_flashdata("Success", "You have successfully logged in");

            $_SESSION['user_logged'] = TRUE;

            $_SESSION['username'] = $user->username;

            redirect('profile', 'refresh');
        } else {

            $this->session->set_flashdata("Error", "No such account in database");
        }
    }
    $this->load->view('login');
}
 if(!empty($user->email)) instead of if ($user->email)                      

谢谢您的帮助。

当$user为空时,您会遇到错误,这意味着找不到给定用户名和密码的记录。
 if(!empty($user->email)) instead of if ($user->email)                      
使用

 if(!empty($user->email)) instead of if ($user->email)                      

当$user为空表示找不到给定用户名和密码的记录时,出现错误。 使用

 if(!empty($user->email)) instead of if ($user->email)                      

首先检查您的
$user
是否有值。还要检查它是数组还是对象。可能也值得用
$this->input->POST()
替换
$\u POST[]
,因为这会为您进行空检查。出于安全目的,MD5被认为已损坏,不足以进行密码散列。使用和代替。如果您使用的是5.5之前的PHP版本,则可以使用。首先检查
$user
是否有值。还要检查它是数组还是对象。可能也值得用
$this->input->POST()
替换
$\u POST[]
,因为这会为您进行空检查。出于安全目的,MD5被认为已损坏,不足以进行密码散列。使用和代替。如果您使用的是5.5之前的PHP版本,您可以使用。错误未显示,但您能否解释为什么flash消息未显示,thankserror未显示,但您能否解释为什么flash消息未显示,谢谢