IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

affichage variable dans cookie


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut affichage variable dans cookie
    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 :

    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
    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
    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>
    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
    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>";
    		}
     
    ?>
    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
    <!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>
    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
    Merci d'avance pour votre aide

  2. #2
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut
    Salut,

    Je pense que ca viens du time() + 0 que tu à mis dans ton setcookie(), en gros la il expire au même moment ou il est créé, met simplement 0 pour qu'il expire à la fin de la session.

    Et pour éviter d'avoir le message d'erreur pour les utilisateurs pas connectés, je te conseil de l'afficher plutôt comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (isset($_COOKIE['pseudo']) {
        echo 'Bonjour ' . $_COOKIE['pseudo'];
    } else {
        echo 'Bonjour invité';
    }

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Salut,

    alors j'ai suivie ton conseil, voilà ce que j'ai fait pour la ligne setcookie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setcookie('pseudo', $_POST['login'], time()+3600*24);
    et j'ai rajouté ton bout de code pour ma page d'accueil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    		<?php
    			if (isset($_COOKIE['pseudo']))
    				{
    					echo 'Bonjour ' . $_COOKIE['pseudo'];
    				} 	
    			else 
    				{
    					echo 'Bonjour invité';
    				}	
    		?>
    Mais j'ai beau taper le bon login et mot de passe, il m'affiche toujours le "bonjour invité" comme si le cookie n'existait pas. alors je vais regarder dans les cookie de mon navigateur et j'ai bien un cookie localhost ayant pour nom pseudo avec la bonne variable

    Je suis un peu perdu, je ne vois pas ce que je fais de mal ...

    Merci pour ton aide

  4. #4
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut
    Et il t'affiche quoi si tu fait un print_r($_COOKIE); sur ta page d'accueil ?

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    il m'affiche :
    Array ( )

    J'interprète ça comme s'il ne voyait pas la variable dans le cookie et donc ne l'affiche pas.

    Pour info (je ne sais pas si c'est utile mais bon...) j'utilise firefox 10.0.1 et voila ce qu'il me donne comme info quand je jette un coup d'oeil dans mon cookie localhost :

    Nom : pseudo
    Contenu : toto
    Hôte : localhost
    Chemin : /chess/login (chemin dans le dossier /www de wampserver)
    Envoi pour : Tout type de connexion
    Expire : A la fin de la session

    J'utilise wampserver 2.1 avec :
    Apache 2.2.17
    Mysql 5.5.8
    PHP 5.3.5

    En espérant avoir été le plus complet possible dans ma description du problème.

  6. #6
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    je suis vraiment bloqué avec ce problème. je ne sais aps trop quoi faire

Discussions similaires

  1. affichage variable dans listebox
    Par Liloo14 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 21/07/2012, 15h27
  2. Affichage variable dans un champ texte et espaces
    Par bonuxis dans le forum Langage
    Réponses: 2
    Dernier message: 04/03/2010, 10h01
  3. Affichage d'une variable dans un label
    Par Rydley dans le forum Windows Forms
    Réponses: 5
    Dernier message: 14/03/2007, 19h14
  4. Affichage contenu d'une variable dans JS
    Par tangjuncn dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/05/2006, 13h38
  5. Affichage variable dans une fenêtre d'alerte
    Par undercrash dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/03/2006, 21h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo