Programmation PHP/Cookies
Aller à la navigation
Aller à la recherche
Introduction[modifier | modifier le wikicode]
Base de données des cookies Firefox, lue avec SQLite.
Les cookies sont téléchargés du serveur HTTP sur le PC client, stockés dans le répertoire du navigateur de l'utilisateur courant. Par exemple dans Windows 7[1] :
- Firefox :
C:\Users\%USERNAME%\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\cookies.sqlite
(lisible par exemple avec https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/). - Chrome
C:\Users\%USERNAME%\AppData\Local\Google\Chrome\User Data\Safe Browsing Cookies
. - Internet Explorer :
C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Cookies
.
- Ne pas mettre d'informations privées (mots de passe du serveur...) dans ces variables car elles sont stockées dans un fichier non protégé, sur le disque dur de l'utilisateur.
- Le cookie étant défini lors de l'affichage de l'en-tête HTTP, on ne peut pas le modifier puis le relire dans la même exécution. En effet, il est destiné à être lu après rechargement des pages.
- Ces cookies sont limités à 20 par domaine dans la configuration par défaut de PHP.
D'une manière générale, les cookies prennent la forme suivante :
Set-Cookie: nom=nouvelle_valeur; expires=date; path=/; domain=.exemple.org
- Le chemin (path) permet de ne les rendre opérants que dans certaines parties d'un site.
- Le domaine fonctionne même avec d'autres serveurs (voir pixel espion).
Syntaxe[modifier | modifier le wikicode]
<?php
setcookie('cookie1', 'valeur1');
echo $_COOKIE['cookie1'];
Pour définir la durée du cookie (à 30 jours) et la page du site qui lui est associée :
<?php
setcookie('cookie2', 'valeur2', time() + 3600 * 24 * 30, '/');
Pour supprimer un cookie, on lui confère une durée de vie négative :
<?php
setcookie('cookie2', 'valeur2', time() - 1, '/');
Exemples[modifier | modifier le wikicode]
<?php
if (isset($_COOKIE["cookie1"])) {
echo 'Authentifié';
} else {
echo 'Non authentifié';
}