Page 1 sur 1

Undefined property: PDOStatement::$mdp in C:\wamp\www\TOUPACKGROUP\class\Auth.php on line 99

Posté : 29 mars 2016, 12:02
par Jeina
Bonjour , je viens vers vous car je bloque sur un problème que j'ai du mal à identifier, je précise que je viens tout juste de débuter en POO. :oops:
Bon le problème c'est que quand j'essaye de connecter l'utilisateur, je rencontre ce message d'erreur :
( ! ) Notice: Undefined property: PDOStatement::$mdp in C:\wamp\www\TOUPACKGROUP\class\Auth.php on line 99
Call Stack
# Time Memory Function Location
1 0.0020 142568 {main}( ) ..\login.php:0
2 0.0710 201928 Auth->login( ) ..\login.php:11

je ne sais pas mais ._. ce n'est pas pour la premiere fois que j'utilise la variable $mdp , pourquoi elle est considérée comme "undefined property" ?


Voici mon code :
la classe Auth.php
public function login($db, $email, $mdp, $remember = false)
        {
            $user = $db->query('SELECT * FROM client WHERE (email = :email) AND confirmed_at IS NOT NULL ', ['email' => $email]);
           if ($user && password_verify($mdp, $user->mdp)) {
                $this->connect($user);
                if ($remember) {
                    $this->remember($db, $user->id_clt);
                } //for cookies
                return $user;
            } else {
                return false;
            }
        }
et la page login.php
<?php 
	require 'inc/bootstrap.php';
	$auth = App::getAuth();
	$db = App::getDatabase();
	$auth->connectFromCookie($db);

	if($auth->userLogged()){
		App::redirect('account.php');
	}
	if(!empty($_POST) && !empty($_POST['email']) && !empty($_POST['mdp'])){
		$user = $auth->login($db, $_POST['email'], $_POST['mdp'], isset($_POST['remember']));
			$session = Session::getInstance();
			if($user) {
				$session->setFlash('success', 'Vous êtes maintenant connecté');
				App::redirect('account.php');

			}else{
				$session->setFlash('danger', 'Identifiant ou mot de passe incorrecte');
			}
	}
?>

voila, Merci d'avance pour ceux qui vont m'aider

Re: Undefined property: PDOStatement::$mdp in C:\wamp\www\TOUPACKGROUP\class\Auth.php on line 99

Posté : 30 mars 2016, 13:27
par Maitrepylos
Bonjour, ce n'est pas $mdp qui pose souci, mais bien PDOStatement::$mdp, c'est a dire l'attribur mdp de l'objet user ($user->mdp).
A mon avis, votre requête SQL ne retourne rien et donc l'objet $user n'est pas instancié.

Re: Undefined property: PDOStatement::$mdp in C:\wamp\www\TOUPACKGROUP\class\Auth.php on line 99

Posté : 30 mars 2016, 17:21
par Jeina
Bonjour, ce n'est pas $mdp qui pose souci, mais bien PDOStatement::$mdp, c'est a dire l'attribur mdp de l'objet user ($user->mdp).
A mon avis, votre requête SQL ne retourne rien et donc l'objet $user n'est pas instancié.
Donc qu'est ce que je dois faire exactement #-o ? Merci pour ton aide ^^

Re: Undefined property: PDOStatement::$mdp in C:\wamp\www\TOUPACKGROUP\class\Auth.php on line 99

Posté : 30 mars 2016, 18:10
par Maitrepylos
regarder du côté de is_object()

Re: Undefined property: PDOStatement::$mdp in C:\wamp\www\TOUPACKGROUP\class\Auth.php on line 99

Posté : 01 avr. 2016, 17:40
par Jeina
regarder du côté de is_object()
je l'ai fais , mais c'était sans issu :x