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 :


<?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)
Salut

L'erreur te dis que $user n'est pas un objet,

donc utilise "var_dump($user)" pour voir ce qui ci trouve !

surement un array().
Salut, J'ai fait un var_dump, et $user est "NULL", j'ai cherché une petite heure sans réussir à résoudre le problème.. Cependant je suis passé à un autre projet, j'ai malheuresement pas le temps de passé plus de temps sur ce problème, merci tout de même pour ton tips ! Smiley smile