Notice: Undefined index

Fermé
Raja59 - 29 juil. 2022 à 15:16
jordane45 Messages postés 38174 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 mai 2024 - 29 juil. 2022 à 21:44

Bonjour,

Je viens vers vous car je me trouve bloqué dans mon code PHP. Je suis un tuto sur youtube qui nous apprend à créer un forum, j'en suis au niveau de l’authentification de l'utilisateur mais plusieurs erreurs apparaissent et je ne suis pas en mesure des les régler. après plusieurs recherches sur le net et dans d'autres forums je n'y arrive toujours pas. Je suis débutant en PHP, mais j'ai pourtant bien suivi les différentes étapes du tutoriel. Voici mon morceau de code :

<?php

require('database.php');

//Validation du formulaire
if(isset($_POST['validate'])){

    //Vérifier si l'user a bien complété tous les champs
    if(!empty($_POST['pseudo']) AND !empty($_POST['lastname']) AND !empty($_POST['firstname']) AND !empty($_POST['password'])){
        
        //Les données de l'user
        $user_pseudo = htmlspecialchars($_POST['pseudo']);
        $user_lastname = htmlspecialchars($_POST['lastname']);
        $user_firstname = htmlspecialchars($_POST['firstname']);
        $user_password = password_hash($_POST['password'], PASSWORD_DEFAULT);

        //Vérifier si l'utilisateur existe déjà sur le site
        $checkIfUserAlreadyExists = $bdd->prepare('SELECT pseudo FROM users WHERE pseudo = ?');
        $checkIfUserAlreadyExists->execute(array($user_pseudo));

        if($checkIfUserAlreadyExists->rowCount() == 0){
            
            //Insérer l'utilisateur dans la bdd
            $insertUserOnWebsite = $bdd->prepare('INSERT INTO users(pseudo, nom, prenom, mdp)VALUES(?, ?, ?, ?)');
            $insertUserOnWebsite->execute(array($user_pseudo, $user_lastname, $user_firstname, $user_password));

            //Récupérer les informations de l'utilisateur
            $getInfosOfThisUserReq = $bdd->prepare('SELECT id, pseudo, nom, prenom FROM users WHERE nom = ? AND prenom = ? AND pseudo = ?');
            $getInfosOfThisUserReq->execute(array($user_lastname, $user_firstname, $user_pseudo));

            $usersInfos = $getInfosOfThisUserReq->fetchAll();

            //Authentifier l'utilisateur sur le site et récupérer ses données dans des variables globales sessions


            $_SESSION['auth'] = true;
            $_SESSION['id'] = $usersInfos['id'];
            $_SESSION['lastname'] = $usersInfos['nom'];
            $_SESSION['firstname'] = $usersInfos['prenom'];
            $_SESSION['pseudo'] = $usersInfos['pseudo'];

            //Rediriger l'utilisateur vers la page d'accueil
            header('Location: ../index.php');
            exit;

        }else{
            $errorMsg = "L'utilisateur existe déjà sur le site";
        }

    }else{
        $errorMsg = "Veuillez compléter tous les champs...";
    }

}

Voilà les erreurs affichées

Je vous remercie d'avance pour votre aide!
Windows / Firefox 102.0

3 réponses

diablo13800 Messages postés 2890 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 16 février 2024 1 845
29 juil. 2022 à 15:26

Bonjour,

Votre erreur semble se concentré sur un index de votre variable $usersInfos. 

Essayer d'afficher ce qu'elle contient après votre requête avec un var_dump 

var_dump($usersInfos);die;

0

Merci pour votre réponse, je vais essayer ça et je reviens vers vous !

0
jordane45 Messages postés 38174 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 mai 2024 4 666
Modifié le 29 juil. 2022 à 21:45

Bonjour,

Je t'invite à lire ceci ( valable pour toutes les variables de type array ) 

https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index


0