php新手请教一个关于cookie的问题
代码如下:
<code>function cookie($name) { return isset($_COOKIE[$name]) ? $_COOKIE[$name] : null; } /** * 从客户端浏览器删除一个 Cookie。 * @param string $cookie_name 要删除的 Cookie 名称。 * @return void */ function delete_cookie($cookie_name) { setcookie($cookie_name, '', time() - 2 * 24 * 3600); unset($_COOKIE[$cookie_name]); } delete_cookie('mycookie'); setcookie('mycookie', 'myvalue'); var_dump(cookie('mycookie')); // 为何这里总是输出NULL?为什么不是输出刚刚设置的'myvalue'?</code>
为何总是输出NULL?为什么不是输出刚刚设置的'myvalue'?
回复内容:
代码如下:
<code>function cookie($name) { return isset($_COOKIE[$name]) ? $_COOKIE[$name] : null; } /** * 从客户端浏览器删除一个 Cookie。 * @param string $cookie_name 要删除的 Cookie 名称。 * @return void */ function delete_cookie($cookie_name) { setcookie($cookie_name, '', time() - 2 * 24 * 3600); unset($_COOKIE[$cookie_name]); } delete_cookie('mycookie'); setcookie('mycookie', 'myvalue'); var_dump(cookie('mycookie')); // 为何这里总是输出NULL?为什么不是输出刚刚设置的'myvalue'?</code>
为何总是输出NULL?为什么不是输出刚刚设置的'myvalue'?
COOKIE 是你从你的客户端带过去的,所以读到COOKIE应该是上次脚本设置的,然而你每次执行这个脚本时, 都把上次设置的COOKIE删了,然后设置了一个新COOKIE,这个COOKIE只能被下次运行的脚本读取到。然后一直进行 删-设-删-设 的循环。。。所以读不到咯。
如果把COOKIE改为SESSION的话,就能读到了,SESSION不会像COOKIE这样慢一拍的。它是保存在服务器的。
因为对于COOKIE的赋值只有等下一次浏览请求时才能生效。但你等到下一次浏览的时候你delete掉了,所以就一直,这个COOKIE和你多大仇..
你在本次请求中已经删除了$_COOKIE['mycookie'],而setcookie需要下一次请求才生效.
$_COOKIE是浏览器把cookie信息传给PHP.
setcookie是PHP把cookie信息告诉浏览器.
也就是$_COOKIE['xxx']的生成需要setcookie('xxx')所在的请求先执行完成.
如果你想输出‘myvalue’,可以将unset($_COOKIE[$cookie_name]);
注释掉。就可以输出了
unset 会立即生效,但是 set_cookie 需要下一次请求才会有效果。
同理,如果删除了 unset 这一句,输出的结果并不是刚刚 set_cookie 的,而是上一次 set_cookie 的。
例如,我把 unset 这一句删除,然后刷新,会显示 string(7) "myvalue"
,没有问题;
接着我把 myvalue 改成 myvalue2,然后刷新,还是显示 string(7) "myvalue"
;
再刷新一次,才会显示 string(8) "myvalue2"
。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c
