Les cookies en PHP
Un article de Games Creators Network.
Sommaire |
[modifier] Présentation
Malheureusement je ne vais pas vous parler des délicieux biscuits aux chocolats, mais des cookies informatiques. Késako un cookie ? Et bien c'est un petit fichier qui contient des données transmises par un site web.
Mais c'est pas dangereux?
Non, rassurez vous, tout le monde à déjà reçut des cookies de divers sites web au moins une fois dans leurs vie. Ils ne sont pas dangereux car il ne contienne que une donnée brute : du texte (string en informatique). Cette données est non-executable, c'est-à-dire que l'ordinateur ne pourra pas l'interpréter en tant que script ou programme; donc il ne sont ni spyware, ni virus. Par contre, des sites de spywares peuvent y stocker des informations sur vous, sur vos habitudes, sur votre ordinateur dans le but de s'en servir plus tard.
Sous Windows, les cookies sont stockés dans C:\windows\Temporary Internet Files. Vous pouvez allez voir, vous aurez pas mal de cookies normalemement qui servent a conserver par exemple vos identifiants et mots de passe.
Le but du cookie est donc de transmettre des données entre le serveur et le client sans passer par des variables passées en arguement de l'URL.
[modifier] Création de cookie et envoi de données
Et bien pour créer et envoyer un cookie, nous allons nous servir de la fonction php setcookie()
<?php // Le temps de vie du cookie en secondes, soit ici 1 heure (60x60 secondes) $temps = 3600; // On créé et on envoie le cookie au navigateur client qui va le sauvegarder setcookie("login","Pchiter",time()+$temps); ?>
Ici, on a envoyé un cookie avec le nom login, avec comme valeur Pchiter et ayant comme temps d'expiration l'heure actuelle ( time() ) plus 1 heure.
Il faut néanmoins faire attention à une chose, il faut que vous placiez votre code d'envoi de cookies avant tout le reste de votre code.
[modifier] La récupération des données
Encore une fois, ce n'est pas compliqué, vous n'avez qu'à vous servir d'un petit echo comme ceci :
<?php echo $_COOKIE["login"]; ?>
Et bien le echo affichera tout ce que contient le cookie, balèze php non ?
[modifier] La destruction de cookies
Comme on me l'a dit, détruire un cookie c'est très important ;p. Bref, pour détruire un cookie il suffit de le vider comme ceci :
<?php setcookie("login"); ?>
ou
<?php setcookie("login","Pchiter",time()-10); ?>
Comme cela, le cookie renverra FALSE et sera détruit du coté client, mais attention, il faut qu'il ait exactement les mêmes paramêtres mis a part le temps.
[modifier] Conclusion
En conclusion, les cookies s'avèrent très efficaces lorsque l'on fait un système d'identification puisque les gens ne seront pas obligés de se reconnecter toutes les 10 minutes.
Remarques :
Si vous faites un système d'authentification, récupérez l'adresse IP du visiteur afin qu'un cookie ne soit pas détourné.
N'oubliez pas que les cookies peuvent être lu voire modifié par le client, donc évitez absolument de mettre des informations importantes comme, par exemple, un mot de passe ou une adresse IP; Utilizez plutôt le condensé du mot de passe (MD5), et comparez-le avec le condensé du vrai mot de passe.

