Bonjour, </br>
je me permet de vous demander de l'aide car je bloque depuis un moment avec ceci : "Trying to get property of non-object" sur le tutoriel du même nom que celui de mon post.</br>
Je pense que mon problème vient de ma fonction "row". </br>
Dans ma class :

    public function row($sql, $data = array()){
            $req =$this->db->prepare($sql);
            $req->execute($data);
            return $req->fetchAll(PDO::FETCH_OBJ);
        }

Dans mon code :

    $user = $DB->row('SELECT id, pass FROM membres WHERE id=:id', array('id' => $auth[0]));
    $key = ($user->id . $user->pass);

Voilà en gros ce que je récupère :

string(46) "3-----516b9783fca517eecbd1d064da2d165310b19759" array(2) { [0]=> string(1) "3" [1]=> string(40) "516b9783fca517eecbd1d064da2d165310b19759" }
Notice: Trying to get property of non-object in C:\xampp\htdocs\store\_header.php on line 15

Merci d'avance à celui qui portera une attention particulière à mon post :)

5 réponses


Airday
Réponse acceptée

Essai avec $user[0]->id et $user[0]->pass, juste pour tester et voir si elle contient quelque chose.
Si cela fonctionne, après la ligne :

$user = $DB->row('SELECT id, pass FROM membres WHERE id=:id', array('id' => $auth[0]));

Tu ajouteras :

$user = current($user);

Cela récupérera le premier élément, du coup la prochaine ligne devrait fonctionner.

$key = ($user->id . $user->pass);

Salut,
Faudrais que tu fasses un vardump de ta variable, $user
Il semble que celle-ci soit vide,

Kennxth
Auteur

Salut Emix,
J'ai comme demandé, réalisé un vardump de ma variable $user </br>
Voilà le résultat :

array(1) { [0]=> object(stdClass)#5 (2) { ["id"]=> string(1) "3" ["pass"]=> string(40) "516b9783fca517eecbd1d064da2d165310b19759" } }

j'ai également réalisé un vardump sur la variable $key

string(0) ""

C'est donc à cette ligne là qu'il y à le probleme

$key = ($user->id . $user->pass);

Explicitement $key doit avoit quel forme ?

Kennxth
Auteur

Merci Airday ainsi que les autres. </br>
Mon problème viens du cryptage avec sha1... car sans, ça fonctionne bien au final. j'ai donc fini par abandonner n'ayant pas trouvé la solution à ce problème (à l'ajout du cryptage avec sha1, il n'y à plus d'élément dans mon tableau (Undefined offset: 0)). </br>
J'ai donc pour le moment prit d'autres arguments pour réaliser mon cookie pour la connexion persistante. (qui eux ne sont pas cryptés, un peu moche pour la sécurisé... x) ).</br>
Encore merci de l'attention portée à mon sujet :)