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 :

récupérer informations de $_COOKIE


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de vertebre
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 184
    Points : 111
    Points
    111
    Par défaut récupérer informations de $_COOKIE
    Bonjour,

    Pour vous exposer la situation voilà ce que j'ai : 1.Formulaire > 2.Traitement formulaire+enregistrement des informations dans $_COOKIE, $_SESSION, > 3.Affichage des informations
    Je n'arrive pas à récupérer les valeurs de ma variable $_COOKIE, pourriez vous jeter un coup d’œil svp ?

    Voici mon code

    1.Formulaire (ex1.php)
    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
    39
    40
    <?php
    session_start();
    ?>
    <!DOCTYPE html>
     
    <head><title>Formulaire TP5 ex1</title>
    <!-- encodage des caractéres en UTF-8 pour prise en compte des accents -->
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" type="text/css" href="style.css">
    </head>
     
    <body>
     
     
    <form id="myform" action="checkform.php" method="post">
     
    <label for="form_nom">Nom: </label>
    	<input type="text" name="nom"></input><br/>
     
    <label for="form_prenom">Prénom: </label>
    	<input type="text" name="prenom"></input><br/>
     
    <label for="form_mdp">Mot de passe: </label>
    	<input type="password" name="mdp"></input><br/>
     
    <label for="form_mdpc">Confirmer Mot de passe: </label>
    	<input type="password" name="mdpc"></input><br/>
     
    </p>
     
    <input type="reset" name="nom" value="Reset" action="">
     
    <input type="submit" name="submit" value="Valider" action=""></button>
    <br/>
     
     
     
     
    </body>
    </html>
    2.Traitement formulaire (checkform.php)
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    <?php
    session_start();
    ?>
     
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
     
    <?php
     
     
        // Le nom est-il rempli ?
        if(empty($_POST['nom']))
        {
          $messagenom = '<br/>Renseigner le nom svp';
          echo $messagenom;
          $ischecked = 0;
        }
        else {
        	$ischecked = 1;
    		//$_COOKIE['nom'] = $_POST['nom'];
        }
     
     
    	// le prénom est-il remplie ?
    	$ischecked = 0;
        if(empty($_POST['prenom']))
        {
          $messageprenom = '<br/>Renseigner le prénom svp';
          echo $messageprenom;
          $ischecked = 0;
        }
        else {
        	$ischecked = 1;
    		//$_COOKIE['prenom'] = $_POST['prenom'];
        }
     
     
        // Le mot de passe est-il rempli ?
        if(empty($_POST['mdp']))
        {
          $messagepass = '<br/>Renseigner le pass svp';
          echo $messagepass;
          $ischecked = 0;
        }
        else {
        	$ischecked = 1;
        }
     
        // la confirmation du mot de passe est-elle remplie ?
        if(empty($_POST['mdpc']))
        {
          $messagepass2 = '<br/>Renseigner la confirmation de pass svp';
          echo $messagepass2;
          $ischecked = 0;
        }
     
        else {
        	$ischecked = 1;
        	//$value = 'Nom: '.$_POST['nom'].', Prénom: '.$_POST['prenom'];
        }
     
    if ($ischecked == 1) {
     
    		$_COOKIE['nom'] = $_POST['nom'];
    		$_COOKIE['prenom'] = $_POST['prenom'];
     
    		echo 'Informations dans Cookie: ';
    		echo '<br/>';
    		print_r ($_COOKIE);
     
    			echo '<br/><br/>';
     
    		$_SESSION['nom'] = $_POST['nom'];
    		$_SESSION['prenom'] = $_POST['prenom'];
     
    		echo 'Informations dans Session: ';
    		echo '<br/>';
    		print_r ($_SESSION);
     
     
    		echo '<br/><a href="http://localhost/tp php/tp5 re/other.php">lien</a>';
     
    }
     
    ?>
    3.Affichage des informations (other.php)
    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
    <?php
    session_start();
    ?>
     
     
    <?php
    echo '<p>Informations Cookie:</p>'; 
    print_r ($_COOKIE); //il ne m'affiche pas les informations de  $_COOKIE, seulement l'ID de la session PHP
     
    // rien ne s'affiche avec çà
    /*
    if (isset($_COOKIE['nom']) && $_COOKIE['nom'] == 'yes') {
      echo $_COOKIE['nom'];
    }
    */
     
     
    echo '<p>Informations sessions: </p>';
    print_r ($_SESSION); //il m'affiche bien les informations contenues dans la variables $_SESSION
     
    // rien ne s'affiche avec çà
    /*
    if (isset($_SESSION['nom']) && $_SESSION['nom'] == 'yes') {
      echo $_SESSION['nom'];
    }
    */
     
     
     
    echo '<p><a href="http://localhost/tp%20php/tp5 re/ex1.php">Retour formulaire</a></p>';
     
    echo '<input type="reset" name="nom" value="Reset formulaire">';
     
    echo '<p><input type="button" value="Supprimer cookies" action="delcookie.php"</input></p>';
     
     echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
     ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut utiliser setcookie() pour définir un cookie
    http://php.net/manual/fr/function.setcookie.php
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier Avatar de vertebre
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 184
    Points : 111
    Points
    111
    Par défaut
    Ok j'ai donc modifié le fichier checkform.php avec setcookie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $value = 'Nom: '.$_POST['nom'].' | Prénom: '.$_POST['prenom'].' | Php Session:';
    		setcookie('mycookie', $value);
    Voici le fichier complet :

    2. checkform.php
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    <?php
    session_start();
    ?>
     
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
     
    <?php
     
     
        // Le nom est-il rempli ?
        if(empty($_POST['nom']))
        {
          $messagenom = '<br/>Renseigner le nom svp';
          echo $messagenom;
          $ischecked = 0;
        }
        else {
        	$ischecked = 1;
    		//$_COOKIE['nom'] = $_POST['nom'];
        }
     
     
    	// le prénom est-il remplie ?
    	$ischecked = 0;
        if(empty($_POST['prenom']))
        {
          $messageprenom = '<br/>Renseigner le prénom svp';
          echo $messageprenom;
          $ischecked = 0;
        }
        else {
        	$ischecked = 1;
    		//$_COOKIE['prenom'] = $_POST['prenom'];
        }
     
     
        // Le mot de passe est-il rempli ?
        if(empty($_POST['mdp']))
        {
          $messagepass = '<br/>Renseigner le pass svp';
          echo $messagepass;
          $ischecked = 0;
        }
        else {
        	$ischecked = 1;
        }
     
        // la confirmation du mot de passe est-elle remplie ?
        if(empty($_POST['mdpc']))
        {
          $messagepass2 = '<br/>Renseigner la confirmation de pass svp';
          echo $messagepass2;
          $ischecked = 0;
        }
     
        else {
        	$ischecked = 1;
     
        }
     
    if ($ischecked == 1) {
     
    		/*
    		$_COOKIE['nom'] = $_POST['nom'];
    		$_COOKIE['prenom'] = $_POST['prenom'];
    		*/
    		$value = 'Nom: '.$_POST['nom'].' | Prénom: '.$_POST['prenom'].' | Php Session:';
    		setcookie('mycookie', $value);
     
     
    		echo 'Informations dans Cookie: ';
    		echo '<br/>';
    		print_r ($_COOKIE);
     
    			echo '<br/><br/>';
     
    		$_SESSION['nom'] = $_POST['nom'];
    		$_SESSION['prenom'] = $_POST['prenom'];
     
    		echo 'Informations dans Session: ';
    		echo '<br/>';
    		print_r ($_SESSION);
     
     
    		echo '<br/><a href="http://localhost/tp php/tp5 re/other.php">lien</a>';
     
    }
     
    ?>
    Mais je ne récupère toujours rien

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu ne peux pas accéder au cookie que tu viens de créer dans checkform.php, mais tu l'as bien dans other.php (ou n'importe quel page chargée après la création)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier Avatar de vertebre
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 184
    Points : 111
    Points
    111
    Par défaut
    çà me semble bizarre aussi mais je t'assure que j'y accède dans checkform.php mais pas dans other.php.

    voici les screens:

    checkform.php
    Nom : checkform.PNG
Affichages : 1214
Taille : 30,7 Ko

    other.php
    Nom : other.PNG
Affichages : 1241
Taille : 27,3 Ko

    Quand je dis que je ne récupère pas le cookie dans other.php, c'est à dire que je ne récupère pas les informations 'nom' et 'prénom' mais juste l'ID session.

  6. #6
    Membre régulier Avatar de vertebre
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 184
    Points : 111
    Points
    111
    Par défaut
    Bonsoir,

    Je me permet de refaire un petit up du sujet car même en testant des changements de mon code dans tous les sens, je ne récupère toujours (dans mon cookie de la page other.php) que l'ID de session seulement

    Auriez vous une solution svp ?

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Pour essayer, ajoute le paramètre qui spécifie la date d'expiration. Moi, dans mon utilisation des cookies, aucun problème de récupération :

    authentificate.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $temps = 365*24*3600;
    setcookie ("user",$usr, time() + $temps);

    index.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    <?php echo (isset($_COOKIE['user']))?$_COOKIE['user']:'';?>
    ...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  8. #8
    Membre régulier Avatar de vertebre
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 184
    Points : 111
    Points
    111
    Par défaut
    Le paramètre 'date d'expiration' n'y change rien

  9. #9
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    je viens de faire un test validé sous wampserver :

    testcookie.php :

    Code php : 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
    <?php $auth=(isset($_GET["auth"]))?$_GET["auth"]:''; ?>
    <!DOCTYPE html>
    <html lang="fr">
    <head>
         <meta charset="UTF-8" />
         <title></title>
     
    </head>
    <body>
    <form action="action_testcookie.php" method="post">
    	<input type="checkbox" name="remember" />se souvenir de moi
    <table>
    	<tr><td><input type="text" size="30" value="<?php echo (isset($_COOKIE['user']))?$_COOKIE['user']:'';?>" name="login2" /></td></tr>
    	<tr><td><input  type="password" size="30" value="<?php echo (isset($_COOKIE['pwd']))?$_COOKIE['pwd']:'';?>" name="pwd2" /></td></tr>
    	<tr><td><input type="submit"   name="login" value="submit"/></td></tr>
    </table>
    </form>
    <?php if (isset($auth)) echo "auth=".$auth."<br/>"; ?>
    </body>
    </html>

    action_testcookie.php :


    Code php : 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
    <?php 
    error_reporting(E_ALL ^ (E_NOTICE|E_WARNING|E_DEPRECATED));
     
     
     function authentification()
    {
     
    		$auth=false;
    		$usr="test_user";
    		$password="test_pwd";
     
     
    		$temps = 365*24*3600;
    		if (isset($_POST['remember'])) {
    			setcookie ("user",$_POST['login2'], time() + $temps);
    			setcookie ("pwd",$_POST['pwd2'], time() + $temps);
    		}
    		else {
    			setcookie ("user","", time() + $temps);
    			setcookie ("pwd","", time() + $temps);
    		}
     
    		if (($usr == $_POST['login2']) && ($password == $_POST['pwd2'])) {
    			$auth = true;						
    		}
     
     return $auth;
    }
     
     $auth=authentification();
     header('Location:testcookie.php?auth='.$auth);
     exit();
     
     
    ?>
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  10. #10
    Membre régulier Avatar de vertebre
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 184
    Points : 111
    Points
    111
    Par défaut
    Après avoir refait le test sur un nouveau projet et en prenant en compte votre code, je récupère une fois sur deux.
    Mais çà marche parfaitement sur XAMPP pourtant j'ai bien tenté de réinstaller mon wamp mais rien n'y fait.

    Je vous remercie quand même et passe en résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer informations systèmes
    Par PP(Team) dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 11/07/2007, 15h39
  2. récupérer informations machine
    Par youp_db dans le forum Windows
    Réponses: 1
    Dernier message: 02/07/2007, 16h25
  3. Réponses: 1
    Dernier message: 24/03/2007, 08h55
  4. Récupérer information de sécurité d'un fichier
    Par cyrilc dans le forum ASP.NET
    Réponses: 5
    Dernier message: 08/01/2007, 19h07
  5. Récupérer informations IP, ...
    Par jpdelx dans le forum ASP
    Réponses: 6
    Dernier message: 16/11/2003, 05h56

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