article(s) dans votre panier VOIR

Tuto PHP/MySQL | Exercice sur les cookies

  • Vidéo 89 sur 158
  • 4h43 de formation
  • 158 leçons

Un contenu flash devrait s'afficher ici. Votre navigateur ne comporte pas de plugin flash, ou il ne s'est pas correctement initialisé.

Vous pouvez télécharger le plugin flash depuis le site d'Adobe à l'adresse suivante : http://get.adobe.com/flashplayer/.

Pour accéder à la suite de cette formation, vous devez vous abonner.
previous
summary
resume
next
play
Exercice sur les cookies
00:00 / 03:17
HD
fullscreen
Je m’abonne
à partir de 16,6 € / mois
  • Visionnage en ligne
  • Accès illimité à toutes nos formations
OU
J'achète uniquement
la formation
49,90€
  • Téléchargement + VOD à vie
  • Accès uniquement à cette formation

Sommaire de la formation

Détails de la formation

Définissez un formulaire dans lequel sont saisis le prénom et le nom de l'utilisateur. Mémorisez ces informations dans la page de traitement du formulaire. Ajoutez dans cette page un lien vers une troisième page et vérifiez que les cookies ont bien été mémorisés.

Solution

Faites une pause dans la vidéo et écrivez les trois pages demandées dans l'exercice. Reprenez la lecture de la vidéo pour avoir des informations détaillées sur ces trois pages.

Voici le code correspondant au formulaire de saisie :

<!DOCTYPE html>

<html>

  <head>

    <meta charset="UTF-8" />

    <title>Transission de données par un formulaire</title>

  </head>

  <body>

    <form name="MonFormulaire" method="post" action="traitement2.php">

      <table><tr><td><label>Prénom</label></td>

      <td><input type="text" name="prenom"></td></tr>

      <tr><td><label>Nom</label></td>

      <td><input type="text" name="nom"></td></tr>

      <tr><td><input type="submit" name="Nom" value="Envoyer"></td>

      <td></td></tr>

    </table>

    </form>

  </body>

</html>

Ce formulaire est traditionnel. Il permet de saisr un prénom et un nom. Lorsque le bouton Envoyer est cliqué, le script traitement2.php est exécuté.

 

Voici le code de traitement du formulaire :

<?php

  if (isset($_POST))

    setcookie("prenom", $_POST, time()+24*3600, null, null, false, true);

  if (isset($_POST))

    setcookie("nom", $_POST, time()+24*2600, null, null, false, true);

?>  

<!DOCTYPE html>

<html>

  <head>

    <meta charset="UTF-8" />

    <title>Traitement des données envoyées par formulaire</title>

  </head>

  <body>

    Les cookies nom et prenom ont été mémorisés.<br><br>

  <a href="verif-cookies.php">Cliquez ici pour le vérifier</a>

  </body>

</html>

La première instruction vérifie si le paramètre prenom existe dans le tableau superglobal $_POST. Dans l'affirmative, le cookie prenom est créé. Sa durée de vie est de 24 heures.

La deuxième instruction vérifie si le paramètre nom existe dans le tableau superglobal $_POST. Dans l'affirmative, le cookie nom est créé. Sa durée de vie est également de 24 heures.

Un message indiquant que les cookies ont été créés est alors affiché dans le corps du document.

Puis un lien hypertexte est affiché afin de tester l'existance des cookies dans un autre document.

 

 

Vici la page permettant de tester l'existence des cookies :

<!DOCTYPE html>

<html>

  <head>

    <meta charset="UTF-8" />

    <title>Affichage des cookies</title>

  </head>

  <body>

    <?php

    echo "Le cookie prenom a pour valeur ".$_COOKIE."<br>";

    echo "Le cookie nom a pour valeur ".$_COOKIE."<br>";

  ?>

  </body>

</html>

Dans le corps du document, deux instructions echo affichent la valeur des cookies prenom et nom, lues dans le tableau superglobal $_COOKIES.

Affichons le formulaire dans WAMPServer.

Nous entrons un prénom et un nom puis nous cliquons sur le bouton Envoyer.  Le script traitemen2.php s'exécute et nous informe que les données du formulaire ont été sauvegardées dans des cookies. Nous allons le vérifier en cliquant sur le lien hypertexte. Le script verif-cookie.php s'exécute. Nous pouvons vérifier que les deux valeurs saisies se trouvent bien dans les cookies.

 

Une erreur classique

 

L'erreur "Headers already sent by" sera envoyée par PHP si les cookies ne sont pas définis avant la balise <html>.