Maison  >  Article  >  développement back-end  >  Instructions pour utiliser les cookies en php

Instructions pour utiliser les cookies en php

怪我咯
怪我咯original
2017-07-05 10:12:541499parcourir

Définir et lire des cookies avec PHP est extrêmement, oserons-nous le dire ? - Des choses simples. Nous ne voulons pas prêcher les cookies, mais ils sont importants et utiles. Ce sont les seuls outils disponibles pour résoudre certains problèmes.

Pour créer et modifier un cookie, utilisez la fonction PHP setcookie(). Selon le degré de contrôle que vous souhaitez avoir sur le cookie et qui peut lire la valeur du cookie, setcookie() peut avoir jusqu'à six paramètres.

La manière la plus simple de paramétrer un cookie est la suivante :

<?php
setcookie(&#39;name&#39;, &#39;bret&#39;);
?>

Ensuite, avant que l'utilisateur ne quitte , chaque page du site consultée à l'aide de ce navigateur, Là sera toujours une variable$name avec la valeur "bret" et elle sera facilement accessible via PHP. Sa durée de vie étant une connexion utilisateur, ce type de cookie est appelé cookie session.

Si vous souhaitez que ce cookie subsiste après la fermeture de son navigateur par l'utilisateur, vous devez passer le troisième paramètre à la fonction setcookie(), qui consiste à fixer la date de validité de ce cookie. Puisque l'histoire de PHP est entièrement dérivée des idées d'Unix, cette date d'expiration doit être représentée par le nombre total de secondes depuis le 1er janvier 1970. Si vous êtes un programmeur Unix, cet algorithme peut avoir du sens pour vous. Mais si vous venez du camp Windows ou Macintosh, vous pouvez simplement secouer la tête et soupirer, incapable de comprendre ces étranges gars d'Unix.

Mais il n'y a pas lieu d'avoir peur. PHP fournit une fonction mktime() très utile. Il vous suffit de transmettre à mktime() les heures, minutes, secondes, mois, date et année que vous souhaitez représenter dans l'ordre, et mktime() renverra le nombre total de secondes depuis le 1er janvier 1970. Donc, si vous avez besoin de simuler le problème de l'an 2000 :

<?php
$y2k = mktime(0,0,0,1,1,2000);
setcookie(&#39;name&#39;, &#39;bret&#39;, $y2k);
?>

Désormais, votre cookie expirera en l'an 2000.

Si vous devez mettre à jour le cookie pour stocker une nouvelle valeur, écrasez simplement sa valeur d'origine. Ainsi, même si vous venez d'envoyer le cookie sur la page précédente, vous pouvez toujours changer votre nom en « jeff ».

<?php
$y2k = mktime(0,0,0,1,1,2000);
setcookie(&#39;name&#39;, &#39;jeff&#39;, $y2k);
?>

Notez que cela ne changera pas la valeur de la variable $name. Sa valeur est déterminée lors du chargement de la page. Si vous souhaitez toujours déterminer les deux en même temps, vous pouvez écrire le code suivant :

<?php
$name = &#39;jeff&#39;;
$y2k = mktime(0,0,0,1,1,2000);
setcookie(&#39;name&#39;, $name, $y2k);
?>

Les deux paramètres suivants de setcookie() peuvent contrôler le domaine et le chemin du répertoire du programme qui lit le cookie . Le paramètre par défaut est que seules les pages situées dans la même structure de répertoires que le serveur qui a envoyé le cookie et au même niveau ou en dessous peuvent lire sa valeur. Cela est dû à des considérations de sécurité du réseau. Cependant, si vous avez un compte avec « www.domain.com » mais aussi « other.domain.com », et que le compte permet de traiter les pages du répertoire ~/myhome, vous devez modifier setcookie() comme suit :

<?php
setcookie(&#39;name&#39;, &#39;jeff&#39;, $y2k, &#39;~/myhome&#39;, &#39;.domain.com&#39;);
?>

Le dernier paramètre de setcookie() que nous n'avons pas encore utilisé est de définir le cookie pour qu'il soit envoyé uniquement aux serveurs Web qui implémentent des connexions sécurisées telles que SSL. Pour utiliser cette fonctionnalité, définissez la sixième valeur sur 1.

La suppression des cookies est très simple, il suffit de passer le nom du cookie à setcookie() et PHP le supprimera.

<?php
setcookie(&#39;name&#39;);
?>

Enfin, il y a une autre chose importante à noter concernant l'utilisation des cookies. En raison de la façon dont les cookies fonctionnent avec HTTP, vous devez envoyer tous les cookies avant d'afficher du texte. Sinon PHP donnera un avertissement et le cookie ne sera pas envoyé. Par conséquent, c'est la bonne façon de le faire :

<?php
setcookie(&#39;name&#39;, &#39;jeff&#39;);
echo "Hello Everyone!";
?>

Ce qui suit est la mauvaise façon de le faire :

<?php
$today = mktime(12,0,0,6,25,1999);
echo &#39;Here it is &#39;.date(&#39;g:i:s a, F d, Y&#39;,$today);
echo &#39;&#39;;
echo &#39;In GMT it is &#39;.gmdate(&#39;g:i:s a, F d, Y&#39;,$today);
?>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn