Bonjour à tous,
je suis en train d'apprendre le php.
J'essaye de faire une page de connexion toute bête pour m'entrainer.
j'ai un formulaire où l'on tape son pseudo et son mot de passe, un script php qui vérifie le tout et si les informations sont correctes, redirige vers une page qui doit afficher le pseudo qui est enregistré dans un cookie.
Seulement voilà, cette page d'accueil m'affiche un magnifique message d'erreur :
La première page est une page de connexion toute simple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ( ! ) Notice: Undefined index: pseudo in C:\wamp\www\chess\compte\accueil.php on line 10 Call Stack # Time Memory Function Location 1 0.0002 363440 {main}( ) ..\accueil.php:0
Ensuite j'envoie les paramètres dans une autre page php pour les vérifier :
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 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Connexion</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <p>Veuillez entrer votre identifiant et votre mot de passe</p> <form action="login/check_login.php" method="post"> <p> Identifiant :<input type="text" name="login" /><br /> Mot de passe :<input type="password" name="password" /><br /> <input type="submit" value="Envoyer" /> Si vous n'avez pas de compte, inscrivez vous <a href='inscription/inscription.php'>ici</a></p> </p> </body> </html>
Puis si tout va bien je redirige vers une page pour tester l'affichage du pseudo après un simple bonjour.
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
27
28
29
30
31
32
33
34
35
36
37
38 <?php try { // On se connecte à MySQL $bdd = new PDO('mysql:host=localhost;dbname=chess', 'root', ''); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } // Si tout va bien, on peut continuer if (!empty($_POST['login']) AND (!empty($_POST['password']))) //les champs "login" et "password" ont été remplis { $hache_password = sha1($_POST["password"]); //on hache le mot de passe $req = $bdd->prepare('select * from identifiant where login = :login and password = :password') or die(print_r($bdd->errorInfo())); // on prépare la requête pour les identifiants $req->execute(array('login' =>$_POST["login"], 'password' =>$hache_password)); //on exécute la requête avec les variables $resultat = $req->fetch(); //On récupère le résultat de la requête $req->closeCursor(); //libère la connexion du serveur, permettant ainsi à d'autres requêtes SQL d'être exécutées if (!$resultat) //on vérifie que les identifiants existent { echo "<p>Votre identifiant et/ou votre mot de passe sont faux ! Veuillez retourner à la page de connexion en cliquant <a href='http://localhost/chess/index.php'>ici</a></p>"; } else { setcookie('pseudo', $_POST['login'], time() + 0); header('Location:/chess/compte/accueil.php'); //on redirige vers la page d'accueil } } else //un ou plusieurs champs n'ont pas été remplis { echo "<p>Vous n'avez pas renseigné tous les champs ! Veuillez retourner à la page de connexion en cliquant <a href='http://localhost/chess/index.php'>ici</a></p>"; } ?>
Mais j'ai tout le temps le même message d'erreur comme je vous l'ai écrit en début de message. Je ne vois pas mon erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Accueil</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> Bonjour <?php echo $_COOKIE['pseudo']; ?> </body> </html>
Merci d'avance pour votre aide
Partager