Hello !

 

Nous allons voir comment à partir d'un formulaire, enregistrer le pseudo d'un visiteur dans un cookie puis se resservir de cette information.

 

il va nous falloir créer 3 fichiers :

 

form.php : le formulaire

form_traitement.php : pour traiter les données du formulaire

cookie.php : pour afficher l'information contenue dans le cookie.

 

C'est parti !

 

 

// fichier form.php

 

<HTML>

<BODY>

 

<?php

 

// si le cookie existe et n'est pas vide, on affiche sa valeur

 

if ($_COOKIE['pseudo'] != "") {

  echo 'Bonjour '.$_COOKIE['pseudo'].' !';

}

 

/*

si le cookie n'existe pas, on affiche un formulaire permettant au visiteur de saisir son pseudo

*/

 

else {

  echo'<TABLE ALIGN="center">';

 

// on fait pointer le formulaire vers la page traitant les données

 

echo'<FORM ACTION="./form_traitement.php" METHOD="post">';

 

echo'<B>Pseudo : </B><INPUT TYPE="text" NAME="pseudo" SIZE="40"><BR><BR>';

 

echo'<INPUT TYPE="submit" VALUE="Poster" SIZE="10">';    

 

echo'</FORM></TABLE>';

 

}

 

?>

 

</BODY>

</HTML>

 

// fichier form_traitement.php

 

<?

 

if (isset($_POST['pseudo']))

  $pseudo = $_POST['pseudo'];

 

else

  $pseudo = "";

 

// fonction nous permettant de faire des redirections

function redirection($url){   

if (Headers_sent()){   

  print('<meta http-equiv="refresh" content="0;URL='.$url.'">');   

 

else {   

HEADer("Location: $url");   

}   

}

 

// on teste le contenu de la variable $pseudo

 

if ($pseudo=="") {  

  echo '<BODY onLoad="alert(\'Le pseudo est vide...\')">';

  redirection('./form.php');

exit;

}

 

// si tout est bon, on peut créer le cookie

else {

   

// on définit une durée de vie de notre cookie (en secondes), un an dans ce cas

$temps = 365*24*3600;

 

/*

on envoie un cookie de nom 'pseudo' portant la valeur de la variable $pseudo,

c'est-à-dire la valeur qu'a saisi la personne qui a rempli le formulaire et on limite

son champ d'action au domaine qui l'a créé avec "/" (le cookie ne pourra être lu que par un script appartenant au site qui l'a créé)

*/

setcookie("pseudo",$pseudo, time() + $temps,"/");

 

/*

on redirige vers cookie.php qui va afficher l'information que l'on vient d'inscrire  dans le cookie

*/

redirection('./cookie.php');

   

// on stop le script.

exit;

}

?>

 

// fichier cookie.php

 

<HTML>

<HEAD>

<TITLE>Page de récupération du cookie</TITLE>

</HEAD>

 

<BODY>

 

<?php

if ($_COOKIE['pseudo'])

  echo 'Votre pseudo est '.$_COOKIE['pseudo'];

 

else

  echo 'Aucun cookie présent';

?>

</BODY>

</HTML>

 

 

ATTENTION :

 

Le setcookie, comme le session_start(), doit être positionné dans le script avant toute sortie HTML.

 

Vala, vous savez désormais créer un cookie et y insérer une variable que vous pouvez appeler depuis n'importe lequel de vos scripts ... mais comment insérer plusieurs variables dans le même cookie ? C'est ce que je vais vous expliquer tout de suite.

 

 

A présent, nous allons voir comment à partir d'un formulaire, enregistrer le pseudo et l'âge d'un visiteur dans un cookie puis se resservir de ces informations.

 

il va nous falloir créer 3 fichiers :

 

form.php : le formulaire

form_traitement.php : pour traiter les données du formulaire

cookie.php : pour afficher les informations contenues dans le cookie.

 

C'est re-parti !

 

 

// fichier form.php

 

<HTML>

<BODY>

 

<?php

// si le cookie existe et n'est pas vide, on affiche sa valeur

if ($_COOKIE['pseudo'] != "")

  echo 'Bonjour '.$_COOKIE['pseudo'].' !';

 

/*

si le cookie n'existe pas, on affiche un formulaire permettant au visiteur de saisir

son pseudo et son âge

*/

 

else {

 

echo'<TABLE ALIGN="center">';

 

// on fait pointer le formulaire vers la page traitant les données

echo'<TR><TD>';

 

echo'<FORM ACTION="./form_traitement.php" METHOD="post">';

 

echo'<B>Pseudo : </B><INPUT TYPE="text" NAME="pseudo" SIZE="40"><BR>';

 

echo'</TD><TD>';

 

echo'<B>Age : </B><INPUT TYPE="text" NAME="age" SIZE="3"><BR><BR>';

 

echo'</TD></TR>';

echo'<TR><TD COLSPAN="2">';

 

echo'<INPUT TYPE="submit" VALUE="Poster" SIZE="10">';    

 

echo'</FORM></TABLE>';

}

?>

 

</BODY>

</HTML>

 

// fichier form_traitement.php

 

<?

 

/*

on initialise les variables $pseudo et $age (obligatoire en register_global = off avec EasyPHP 1.7 par exemple)

*/

 

if (isset($_POST['pseudo']))

  $pseudo = $_POST['pseudo'];

else

  $pseudo = "";

 

 

if (isset($_POST['age']))

  $age = $_POST['age']; else $age = "";

 

// fonction nous permettant de faire des redirections

function redirection($url){   

 

if (headers_sent()){   

print('<meta http-equiv="refresh" content="0;URL='.$url.'">');   

}  

 

else {   

HEADer("Location: $url");   

}   

}

 

// on teste le contenu de la variable $pseudo

if ($pseudo=="") {  

  echo '<BODY onLoad="alert(\'Le pseudo est vide...\')">';

  redirection('./form.php');

exit;

}

 

// on teste le contenu de la variable $age

if ($age=="") {  

echo '<BODY onLoad="alert(\'Le champ âge est vide...\')">';

redirection('./form.php');

exit;

}

 

// si tout est bon, on peut créer le cookie

else {

  

// on définit une durée de vie de notre cookie (en secondes), un an dans ce cas

$temps = 365*24*3600;

 

/*

on envoie un cookie de nom pseudo portant les valeurs des variables $pseudo et $age séparée par un &, c'est-à-dire les valeurs qu'a saisi la personne qui a rempli le formulaire et on limite son champ d'action au domaine qui l'a créé avec "/" (le cookie ne pourra être lu que par un script appartenant au site qui l'a créé)

*/

setcookie("pseudo",$pseudo."&".$age, time() + $temps,"/");

 

/*

on redirige vers cookie.php qui va afficher l'information que l'on vient d'inscrire dans le cookie

*/

redirection('./cookie.php');

   

// on termine le script courant

exit;

}

?>

 

// fichier cookie.php

 

<HTML>

<HEAD>

<TITLE>Page de récupération du cookie</TITLE>

</HEAD>

 

<BODY>

 

<?php

if ($_COOKIE['pseudo'])

{

  $tableau=explode("&",$_COOKIE['pseudo']); // explosion ...

  $pseudo=$tableau[0];

  $age=$tableau[1];

echo "votre pseudo est $pseudo et vous avez $age ans";

}

 

else {

echo 'Aucun cookie présent';

}

?>

 

</BODY>

</HTML>

 

 

 

Vala, vous savez désormais créer un cookie et y insérer plusieurs variables puis les faire lire par un de vos scripts.

 

@+...