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消息未显示,谢谢