Bonjour à tous
Etant une grande débutante en PHP et SQL, j'ai décidé de m'entraîner et d'apprendre en développant un site de recette de cuisine.
Pour la précision, je travaille avec Wamp, HTML, CSS, PhpmyAdmin, et MySQL.
Il y aura donc une gestion des droits des utilisateurs ainsi que des requêtes pour envoyer et récupérer des recettes de cuisines vers une base de données Mysql.
Le problème est que depuis plusieurs jours maintenant je bloque sur la récupération de mes données.
Voici mon code qui est supposé permettre à l'utilisateur de s'identifier et de se connecter. Si l'utilisateur est est un simple User, alors il sera redirigé vers les pages pour utilisateurs. Et si l'utilisateur est enregistré en base de données comme étant un Admin, alors il sera redirigé vers les pages administrateurs. Mon problème est que lorsque j'essaye de lancer mon code j'obtiens une erreur "Undefined Array Key" au niveau de $nom = $data['Pseudo'] et $role = $data['Role']. En faisant des recherches, j'ai cru comprendre que cette erreur était dû au fait que je n'avais pas testé mes valeurs avec isset, mais je ne suis pas sûre.
Est-ce que isset est obligatoire pour afficher les données d'une requête ?
Si des personnes assez bienveillantes pouvaient m'expliquer ce qui ne marche pas dans mon code, je vous serait reconnaissante car même après des recherches, la logique de mon code me semble bonne.
PS : Mon code est très simple pour le moment car mon but premier était déjà qu'il marche avant de pousser plus loin. Mais dès que mon code marchera, je me pencherais sur la sécurité en ajoutant htmlspecialChars et en utilisant la fonction hash() pour protéger les données de mes utilisateurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <?php session_start(); if (isset($_POST['submit'])) { $name = $_POST['nom']; $password = $_POST['password']; $con = new PDO("mysql:host=localhost;dbname=recettedev", 'root', ''); if(!empty($name) AND !empty($password)) $sql = "SELECT * FROM user WHERE Pseudo = '$name' "; $result = $con->prepare($sql); $result->execute(); $data = $result->fetch(); if ($data) { $nom = $data['Pseudo']; $role = $data['Role']; echo $role; } else { echo "Aucun utilisateur trouvé."; } } ?>
Je remercie tous ceux qui prendront le temps de lire mon message.
Partager