Ich bin neu in Codeignter. Ich versuche, Login-Register damit zu machen. während der Überprüfung if($user -> email)
gibt es Fehler sagen, versuchen, Eigenschaft von Nicht-Objekt dieser Linie zu bekommen. Wie kann ich es loswerden? Ich habe Registerabschnitt erfolgreich gemacht, aber beim Versuch, mich einzuloggen, gab es Fehler. der Controller-Code ist hier,Codeigniter Versuch, Eigenschaft von Nicht-Objekt-Fehler in Login-Controller zu bekommen
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');
}
Vielen Dank für Ihre Hilfe.
zuerst überprüfen Sie Ihre '' '$ user''' mit Werten oder nicht. Überprüfen Sie auch, ob es Array oder Objekt ist. – kishor10d
Es könnte sich auch lohnen, '$ _POST []' durch '$ this-> input-> post()' zu ersetzen, da dies eine Nullprüfung für Sie durchführt. – kgrwhite
MD5 wird aus Sicherheitsgründen als defekt angesehen und ist nicht ausreichend für das Hashing von Kennwörtern. Verwenden Sie ['password_hash()'] (http://us3.php.net/manual/en/function.password-hash.php) und ['password_verify()'] (http://us3.php.net/ manual/de/function.password-verify.php) stattdessen. Wenn Sie eine Version von PHP vor Version 5.5 verwenden, können Sie [dieses Kompatibilitäts-Paket] (https://github.com/ircmaxell/password_compat) verwenden. –