Hello tous,
J'ai besoin d'un petit coup de main, s'il vous plaît.
Je suis sur le tutoriel Créer un portfolio de A à Z et je bloque sur la deuxième vidéo.
J'ai ce message d'erreur :
Notice: Undefined variable: select in /Applications/MAMP/htdocs/portfoliografikartuto/login.php on line 10 aroundFatal error: Call to a member function rowCount() on null in /Applications/MAMP/htdocs/portfoliografikartuto/login.php on line 10
qui concerne cette portion de code :

    if($select->rowCount() > 0) { // si rowCount est supérieur à 0 l'utilisateur est connecté
        $_SESSION['Auth'] = $select->fetch(); // Si identifié
        setFlash('Vous êtes maintenant connecté'); // Message de connexion
        header('Location:' . WEBROOT . 'admin/index.php'); // renvoi vers ...       
        die();
    }

Mon fichier auth.php semble pourtant coller :

<?php // VERIFIER SI UN UTILISATEUR EST AUTHENTIFIÉ (sur toutes les pages)
session_start(); // démarre la session
if (!isset($auth)) { // si $auth n'est pas déinie c'est qu'on ne veut pas gérer l'authentification
    if (!isset($_SESSION['Auth']['id'])) { // Si utilisateur non identifié
    header('Location:' . WEBROOT . 'login.php'); // on le renvoi vers login.php
    die();
    }
}
?>

J'ai beau me creuser la tête, je ne vois pas d'où vient mon erreur. J'ai suivi le tuto à la lettre.
le dossier complet avec la BDD
J'ai posé la question aussi en commentaire sous la vidéo. D'autres personnes ont eu ce problème mais je n'ai pas trouvé la réponse. Je la pose donc ici en espérant que ce soit vu par quelqu'un qui pourra me débloquer.
Un grand merci ......
C'est dur d'être un noob qui débute en php ^^

2 réponses


Bonsoir.
Dans la ligne précédent le code que tu nous montre, il y a la ligne de code suivante :

$db->query("SELECT * FROM users WHERE username=$username AND password='$password'");

Pour que ton code fronctionne, il faut que tu fasses :

$select = $db->query("SELECT * FROM users WHERE username=$username AND password='$password'");
if($select->rowCount() > 0) { // si rowCount est supérieur à 0 l'utilisateur est connecté

Par contre, la prochaine fois, au lieu de nous proposer une archive de ton projet, mets le plutôt par exemple sur GitHub, ce qui nous évitera de devoir télécharger le projet de quelqu'un juste pour visualiser le code du projet, alors que la plupart du temps, l'erreur ne concerne qu'un fichier, voir deux.

Merci Lartak, j'utiliserai volontier Git quand je saurai l'utiliser, je débute ;)
J'ai fait la modif comme tu me l'as conseillé et j'ai maintenant :
Fatal error: Call to a member function rowCount() on boolean in /Applications/MAMP/htdocs/portfoliografikartuto/login.php on line 10