Cookie PHP
Cookie PHP
Les cookies sont souvent utilisés pour identifier les utilisateurs.
Que sont les cookies ?
Le cookie est généré par le serveur et envoyé à l'agent utilisateur (généralement un navigateur). Le navigateur enregistrera la clé/valeur du cookie dans un fichier texte dans un répertoire et demandera le même site Web la prochaine fois. le cookie est envoyé au serveur (à condition que le navigateur soit configuré pour activer les cookies). Les noms et valeurs des cookies peuvent être définis par le développeur côté serveur, afin que le serveur puisse savoir si l'utilisateur est un utilisateur légitime et s'il doit se reconnecter, etc. Le serveur peut définir ou lire les informations contenues dans Cookies pour maintenir l'état de la session de l'utilisateur avec le serveur
Comment créer un cookie ?
La fonction setcookie() est utilisée pour paramétrer les cookies.
Remarque : La fonction setcookie() doit être placée avant la balise
Syntaxe
setcookie(name, value, expire, path, domain);
Exemple 1
Dans l'exemple suivant, nous allons créer le nom Soyez le cookie de "user" et attribuez-lui la valeur "runoob". Nous précisons également que ce cookie expire au bout d'une heure :
.....
Remarque : La valeur du cookie est automatiquement codée en URL lors de l'envoi du cookie et automatiquement décodée lors de sa récupération. (Pour empêcher le codage d'URL, utilisez plutôt setrawcookie().)
Exemple 2
Vous pouvez également définir le délai d'expiration du cookie d'une autre manière. Cela peut être plus simple que d'utiliser les secondes.
.....
Dans l'exemple ci-dessus, le délai d'expiration est fixé à un mois (60 secondes * 60 minutes * 24 heures * 30 jours).
Configuration et application des cookies
Setcookie (nom de chaîne, valeur de chaîne, expiration int, chemin de chaîne, domaine de chaîne, nom intsecure) ; est l'identifiant du nom de variable de cookie. Vous pouvez l'utiliser pour référencer la variable
cookie en PHP, tout comme vous utilisez un nom de variable ordinaire. value est la valeur initiale de la variable de cookie, expire représente la durée de validité de la variable de cookie ; path représente le chemin pertinent de la variable de cookie ; secure est valide uniquement lorsque https est transmis de manière sécurisée.
SetCookie("Cookie", "cookievalue",time()+3600, "/forum", ".365shequ.com", 1);
Nom, doit être une valeur, doit être être en millisecondes time()+3600=1 heure Enregistrer le chemin Enregistrer le domaine HTTPS
PHP Lire Cookie
Utiliser la super variable globale $_COOKIE tableau pour lire le client actuel Créer un nouveau fichier PHP set_cookie.php pour les cookies enregistrés dans
et le code est
print_r($_COOKIE);
echo $_COOKIE['foo'];
Vérifiez si le cookie a été défini avec succès
Définissez le délai d'expiration du cookie
Le troisième paramètre est l'horodatage unix
0 valeur par défaut, elle expirera lorsque vous fermerez le navigateur
time() + 86400 un jour
setcookie('foo', 'a', time() + 86400 );
Après le paramétrage Veuillez fermer le navigateur, ouvrez-le à nouveau et visitez pour vérifier si le cookie existe
Définissez le chemin du cookie
setcookie('bar', 'b', time() + 86400, '/uploads');
• Veuillez tester si la page PHP nommée bar est lisible dans le répertoire / Cookie
· Veuillez tester si le cookie nommé foo peut être lu dans la page PHP sous /uploads. Veuillez créer un autre sous-répertoire et tester si la page PHP dans le sous-répertoire peut le lire. Quels cookies sont lus
. Une fois le chemin défini, les cookies sous le chemin ne peuvent être lus que par la page sous le chemin
est défini pour le nom de domaine du cookie.setcookie('key', 'val', time() + 86400, '/uploads', '.your.domain');
Définissez le domaine sur news. ne peut pas être lu par les pages sous sports.365jia.cn, et vice versa
Si vous souhaitez que tous les noms de domaine de deuxième niveau partagent des cookies, vous devez définir le domaine sur .php.cn
Problèmes de restriction des cookiesDe nombreux navigateurs ont des limites sur le nombre de cookies. La plupart des navigateurs stipulent les cookies qu'un site Web peut définir. Le nombre ne peut pas dépasser 50. certains navigateurs le limitent même à 30
Les navigateurs ont également des restrictions sur la taille des cookies, qui ne peuvent généralement pas dépasser la taille 4K
Problèmes de sécurité des cookiesSi vous n'éteignez pas votre ordinateur après avoir surfé sur Internet dans un cybercafé, les autres personnes utilisant votre ordinateur peuvent consulter l'historique de tous les sites Web que vous visitez et le contenu des cookies enregistrés par le site Web. dangereux si des données importantes (nom d'utilisateur, mot de passe, numéro de carte, numéro de téléphone portable, numéro d'identification...) sont stockées dans des cookies.
Par conséquent, les données importantes ne peuvent pas être stockées dans les cookies. Si elles doivent être enregistrées, elles doivent s'appuyer sur le serveur
Précautions en matière de cookiesDifférents ordinateurs. ne peut pas partager le cookie
Différents navigateurs sur le même ordinateur ne peuvent pas partager le cookie
Le même navigateur et différents noms de domaine ne peuvent toujours pas partager le cookie
Même le même navigateur, les cookies avec différents les chemins sous un même nom de domaine ne peuvent pas être partagés
Comment récupérer la valeur du Cookie ?La variable $_COOKIE de PHP est utilisée pour récupérer la valeur du cookie.
Dans l'exemple suivant, nous récupérons la valeur du cookie nommé "user" et l'affichons sur la page :
Dans l'exemple suivant, nous utilisons la fonction isset() pour confirmer si le cookie a été posé :
Comment supprimer les cookies ?php中文网(php.cn) "; else echo "普通访客!
"; ?>
Lors de la suppression d'un cookie, vous devez modifier la date d'expiration à une date antérieure.
Instance supprimée :
Que dois-je faire si mon navigateur ne prend pas en charge les cookies ?Si votre application doit gérer des navigateurs qui ne prennent pas en charge les cookies, vous devrez alors utiliser d'autres méthodes pour transmettre des informations entre les pages de votre application. Une solution consiste à transmettre des données via un formulaire (les formulaires et la saisie utilisateur sont traités dans les chapitres précédents de ce didacticiel).
Le formulaire suivant soumet les entrées de l'utilisateur à « welcome.php » lorsque l'utilisateur clique sur le bouton « Soumettre » :
php中文网(php.cn)
Récupérez la valeur dans le fichier « welcome.php », comme indiqué ci-dessous :
php中文网(php.cn) 欢迎 .
你 岁了。
Un demi-temps
Une erreur souvent commise dans le développement réel est d'obtenir des données directement via $_COOKIE après setcookie
setcookie ('foo', 1);
print_r($_COOKIE);
echo $_COOKIE['foo'];
Dans le cas ci-dessus, il est impossible d'obtenir le cookie simplement set est le problème mentionné dans notre titre.
Le principe est très simple. Les cookies sont en fait enregistrés dans le navigateur seulement après que la page actuelle soit renvoyée au navigateur. La valeur setcookie sera enregistrée dans le navigateur. Lorsque la page est visitée pour la deuxième fois, PHP peut lire les données dans le cookie
et $_COOKIE du navigateur. Les données sont transférées du client vers le serveur à chaque fois. la page est demandée
C'est pourquoi elle a été définie à ce moment-là et n'a pas pu être récupérée à ce moment-là
Une façon de résoudre le problème est de la sauvegarder. Après la valeur, le programme actualise le page immédiatement