Bonjour,
Je suis entrain d'essayé de mettre en place un système d'enregistrement + connexion.
L'enregistrement marche nickel avec injection dans la base de données.
Cependant avec le login, j'ai un problème, j'ai le message : d'erreur ''Trying to get propriety 'email' of non-object' lorsque j'essaie de me connecter.
Voici le code :
PS: je suis débutant, je me suis servis d'un guide pour réussir à faire cela.
Modifié par Ploping (06 Feb 2019 - 09:28)
Je suis entrain d'essayé de mettre en place un système d'enregistrement + connexion.
L'enregistrement marche nickel avec injection dans la base de données.
Cependant avec le login, j'ai un problème, j'ai le message : d'erreur ''Trying to get propriety 'email' of non-object' lorsque j'essaie de me connecter.
Voici le code :
<?php
class Auth extends CI_Controller
{
public function login()
{
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');
if ($this->form_validation->run() == TRUE){
$username = $_POST['username'];
$password = md5($_POST['password']);
// check user in database
$this->db->select('*');
$this->db->from('users');
$this->db->where(array('username'=>$username, 'password' =>$password));
$query = $this->db->get();
$user = $query->row();
//////////////////////////////////////////////////////////////////////////////////////////
// var_dump($user); // $user est NULL donc ce n'est pas un objet
// die();
//////////////////////////////////////////////////////////////////////////////////////////
// if user exist
if ($user->email){ // 'Trying to get propriety 'email' of non-object'
//////////////////////////////////////////////////////////////////////////////////////////
//temporary message
$this->session->set_flashdata("success", "Tou are logged in");
// set session variables
$_SESSION['user_logged'] = TRUE;
$_SESSION['username'] = $user->username;
//redirect to profile page
redirection("user/profile", "refresh");
}else {
$this->session->set_flashdata("error", "NO such account exists in databases");
redirect ("auth/login", "refresh");
}
}
$this->load->view('login');
}
public function register()
{
if ($this->input->post('register') !== false){
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('email', 'Email', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');
$this->form_validation->set_rules('password', 'Confirm Password', 'required|matches[password]');
$this->form_validation->set_rules('phone', 'Phone', 'required');
// if form validation true
if ($this->form_validation->run() == TRUE){
echo 'formulaire validé !';
// add user in database
$data = array(
'username'=> $_POST['username'],
'email'=> $_POST['email'],
'password'=> md5($_POST['password']),
'gender'=> $_POST['gender'],
// 'created_data'=> data('y-m-d'),
'phone'=> $_POST['phone']
);
$this->db->insert('users',$data);
$this->session->set_flashdata("success", "Votre compte à bien été crée. Vous pouvez vous connecter à present");
redirect("auth/register", "refresh");
}
}
//load view
$this->load->view('register');
}
}
?>
PS: je suis débutant, je me suis servis d'un guide pour réussir à faire cela.
Modifié par Ploping (06 Feb 2019 - 09:28)