Maison  >  Article  >  développement back-end  >  Comment définir le cycle de vie du cookie PHP

Comment définir le cycle de vie du cookie PHP

PHPz
PHPzoriginal
2023-03-29 10:11:29570parcourir

Dans le développement de sites Web, les cookies sont une forme de stockage de données très couramment utilisée. Un cookie est un fichier texte composé d'un nom, d'une valeur et d'autres attributs facultatifs qui peuvent être enregistrés sur l'ordinateur de l'utilisateur. Parmi eux, l'un des attributs les plus importants est de spécifier le cycle de vie du cookie (expiration), c'est-à-dire la durée pendant laquelle le cookie est stocké sur l'ordinateur client. En PHP, vous pouvez utiliser la fonction setcookie() pour définir des cookies, notamment en définissant le nom, la valeur, l'heure d'expiration et d'autres attributs du cookie. Ci-dessous, cet article présentera en détail comment définir le cycle de vie des cookies en PHP.

1. Fonction setcookie()

La fonction setcookie() est une fonction utilisée pour définir les cookies en PHP. Sa syntaxe est la suivante :

setcookie(name, value, expire, path, domain, secure, httponly);

Parmi eux, la signification des paramètres est la suivante :

    name : le nom du cookie, qui doit être paramétré.
  • value : La valeur du cookie, qui peut être vide.
  • expire : cycle de vie du cookie, spécifié sous forme d'horodatage Unix.
  • path : Précisez le chemin sous lequel le cookie est valide. La valeur par défaut est valide sous le nom de domaine entier.
  • domaine : Précisez le nom de domaine sous lequel le cookie est valide. La valeur par défaut est le nom de domaine actuel.
  • sécurisé : Que ce cookie soit transmis uniquement via le protocole HTTPS, 0 ou 1, la valeur par défaut est 0.
  • httponly : s'il faut restreindre l'accès à ce cookie uniquement via les protocoles HTTP ou HTTPS, 0 ou 1, la valeur par défaut est 0.
Parmi eux, le paramètre expire est au centre de l'attention.

2. Cycle de vie des cookies

Le cycle de vie d'un cookie peut être compris comme la durée de validité du cookie sur l'ordinateur client. En PHP, on peut utiliser le paramètre expire pour préciser le cycle de vie du cookie sur l'ordinateur client. La valeur du paramètre expire est une valeur entière représentée sous la forme d'un horodatage Unix. L'horodatage est le nombre de secondes par rapport à 00:00:00GMT le 1er janvier 1970, nous pouvons donc obtenir l'heure d'expiration par calcul.

Maintenant, regardons un exemple. Par exemple, nous souhaitons définir un cookie nommé "mycookie" et le faire expirer 60 minutes après l'heure actuelle. Ensuite, vous pouvez faire ceci :

$expire=time()+60*60; //设置生命周期为60分钟
setcookie("mycookie", "test", $expire);
Dans cet exemple, nous obtenons d'abord l'horodatage de l'heure actuelle (implémenté avec la fonction time()), puis ajoutons 60 minutes (soit 3600 secondes) pour obtenir un horodatage 60 minutes plus tard. Enfin, nous transmettons cet horodatage au troisième paramètre $expire de la fonction setcookie(), précisant ainsi que le cycle de vie de "mycookie" est de 60 minutes.

Si nous voulons ne pas définir le délai d'expiration, c'est-à-dire laisser le cookie être automatiquement supprimé à la fermeture du navigateur, nous pouvons alors définir le paramètre d'expiration sur 0, comme indiqué ci-dessous :

setcookie("mycookie", "test", 0);
De plus, si nous voulons pour supprimer un cookie immédiatement, nous pouvons Sa durée de vie est définie sur un horodatage passé, comme indiqué ci-dessous :

setcookie("mycookie", "", time()-3600);
Dans cet exemple, nous définissons la durée de vie de "mycookie" à 60 minutes avant l'heure actuelle, afin que le cookie est immédiatement supprimé.

3. Application pratique

Dans les applications pratiques, nous pouvons définir le cycle de vie des cookies en fonction de besoins spécifiques. Par exemple, si nous voulons mémoriser le statut de connexion de l'utilisateur, nous pouvons enregistrer le nom d'utilisateur et le mot de passe lorsque l'utilisateur se connecte à un cookie, et définir le cycle de vie sur un nombre de jours, un nombre d'heures, un nombre de minutes. , etc. De cette manière, même si l'utilisateur ferme le navigateur ou redémarre l'ordinateur, il n'a pas besoin de se reconnecter tant que le cookie n'a pas expiré.

Maintenant, regardons un exemple pratique. Supposons que nous ayons une page de connexion. Une fois que l'utilisateur a saisi le nom d'utilisateur et le mot de passe, il peut cocher l'option "Mémoriser le mot de passe". Si cette case est cochée, le nom d'utilisateur et le mot de passe seront enregistrés dans des cookies afin que l'utilisateur n'ait pas besoin de les re-saisir. saisissez-les lors de leur prochaine connexion. Nom d'utilisateur et mot de passe. Le code spécifique d'implémentation est le suivant :

<?php
if(isset($_POST[&#39;username&#39;]) && isset($_POST[&#39;password&#39;])){
    $username = $_POST[&#39;username&#39;];
    $password = $_POST[&#39;password&#39;];
    if(isset($_POST[&#39;remember&#39;])){
        //如果勾选“记住密码”,则设置cookie生命周期为7天
        setcookie(&#39;username&#39;, $username, time()+3600*24*7);
        setcookie(&#39;password&#39;, $password, time()+3600*24*7);
    }else{
        //如果未勾选“记住密码”,则不设置生命周期,即在浏览器关闭时自动删除cookie
        setcookie(&#39;username&#39;, $username);
        setcookie(&#39;password&#39;, $password);
    }
    //进行登录验证,此处省略......
}
?>

<form method="post" action="">
    <label>用户名:<input type="text" name="username"></label><br>
    <label>密码:<input type="password" name="password"></label><br>
    <label><input type="checkbox" name="remember">记住密码</label><br>
    <input type="submit" value="登录">
</form>
Dans cet exemple, si l'utilisateur coche l'option "Mémoriser le mot de passe", le nom d'utilisateur et le mot de passe sont enregistrés dans les cookies et le cycle de vie est fixé à 7 jours. Si l'utilisateur ne coche pas l'option « Mémoriser le mot de passe », aucun cycle de vie n'est défini, c'est-à-dire que le cookie est automatiquement supprimé à la fermeture du navigateur. De cette façon, la prochaine fois que l'utilisateur ouvrira la page de connexion, il pourra voir le nom d'utilisateur et le mot de passe enregistrés lors de la dernière connexion (si le cookie n'a pas expiré), ce qui permettra à l'utilisateur de se connecter plus facilement et plus rapidement.

4. Résumé

En PHP, le cycle de vie des cookies peut être facilement défini via la fonction setcookie(). Nous pouvons définir le cycle de vie des cookies en fonction de besoins spécifiques pour répondre à divers besoins de stockage de données, tels que mémoriser le statut de connexion de l'utilisateur, enregistrer les préférences de l'utilisateur, etc. Dans le même temps, nous devons également prêter attention au fait que lors de la définition du cycle de vie des cookies, celui-ci doit être calculé sur la base de l'horodatage afin de garantir que le cycle de vie correct est défini.

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