| Accueil | table PHP | index PHP | précédent | suivant |

Les cookies

Les cookies sont de petits fichiers que vous pouvez déposer sur l'ordinateur de vos visiteurs pour conserver des informations comme, par exemple, leur mot de passe afin de leur éviter de le saisir lors de chaque visite.

Le dépôt s'effectue par la fonction :

setcookie( "nom_du_cookie", ["cookie"], [date_limite] )

La date date_limite est la date d'expiration du cookie, il sera supprimé lorsqu'elle sera atteinte. Elle doit être de la forme : time()+durée, la durée étant exprimée en secondes (temps UNIX). Si la date d'expiration n'est pas spécifiée, le cookie ne subsistera que pendant la durée de la session.

cookie est une chaîne de caractères constituant le fichier qui sera déposé sur le poste de l'internaute

Pour supprimer un cookie, faire setcookie avec seulement son nom ou bien donner une durée de vie nulle.

Lors de la prochaine visite de l'internaute (s'il accepte les cookies), le cookie sera disponible dans le tableau $_COOKIE["nom_du_cookie"]. Lorsque le cookie est déposé, magic quotes insère un échappement devant les apostrophes et les guillememts. Il faut donc les supprimer par stripslashes pour afficher correctement le cookie récupéré.

Voici un exemple (on a utilisé la fonction is_numeric($argument), qui retourne vrai si l'argument est un nombre, faux dans le cas contraire, pour s'assurer que la durée fournie est bien un nombre) :


<?php
// initialisation des variables
$OK=0;
$durée="";
$cookie="";

// récupérer le cookie s'il existe
if(isset($_COOKIE["mon_cookie"]))
{


$OK=3;
$cookie=stripslashes($_COOKIE["mon_cookie"]);


}

// origine de l'appel au script
$init=isset($_GET["init"]);
$envoi=isset($_GET["envoi"]);
$supprimer=isset($_GET["supprimer"]);

// déposer le cookie si entrée par "envoi"
if($envoi)
{


$OK=1;
$durée=$_GET["durée"];
if(!is_numeric($durée)) {$durée=1;}
$cookie=stripslashes($_GET["cookie"]);
setcookie("mon_cookie", $cookie, time()+$durée*24*3600);
if($durée==0) {$OK=2; $cookie="";}


}

// supprimer le cookie si entrée par "supprimer"
if($supprimer)
{


$OK=2;
setcookie("mon_cookie");
$cookie="";


}

?>

<!--script029 -->
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Titre de cette page : script029</title>
<meta name="description" content="Phrase décrivant clairement cette page" />
<meta name="keywords" content="mot1 mot2, mot3 mot4 mot5, mot6" />
<link rel="stylesheet" type="text/css" href="PHPStyle014.css" />
</head>

<body>

<form id="form" action="script029.php" >

<h2>Placez un cookie<br/>sur votre ordinateur</h2>

<table class="table" >
<tr>
<td class="cell">
durée de vie en jours :
</td>
<td class="cell">
<input class="champ1" type="text" name="durée"
value="<?php echo $durée ?>" maxlength="2" />
</td>
</tr>
</table>
<p class="Tspan" >Votre cookie :</p>
<p>
<textarea class="champ2" name="cookie" rows="4" cols="27" ><?php echo $cookie ?></textarea>
<br/><br/>
</p>

<table class="table">
<tr>
<td>
<input class="boutons" type="submit" name="envoi" value="envoi" />
</td>
<td>
<input class="boutons" type="submit" name="supprimer" value="supprimer" />
</td>
</tr>
</table>

<?php
// affichage des messages
switch($OK)
{
case 0 :


echo "<p class=\"Tspan\" >Pas de cookie enregistré</p>";
break;


case 1 :


echo "<p class=\"Tspan\" >Ce cookie a été enregistré <br/>
sous le nom de \"mon_cookie\"</p>";
echo "<p class=\"text\">";
if($durée == 1)
{$jours="jour";}
else
{$jours="jours";}
echo "<b>durée de vie : </b>$durée $jours </p>";
break;


case 2 :


echo "<p class=\"Tspan\" >Votre cookie a été supprimé</p>";
break;


}
?>

</form>

</body>
</html>


Exécuter ce script


suivant