【发布时间】:2017-02-08 21:59:02
【问题描述】:
我在页面顶部的 php 标签内设置了一个 cookie:
$cookie_name = "true";
$cookie_value = "bla";
setcookie($cookie_name, $cookie_value, "/");
echo $cookie_name; // first
if(isset($_COOKIE["true"]))
echo $cookie_name; // second
第一个回显似乎工作正常,但我无法回显第二个。似乎 if 语句不等于 true。有人可以澄清发生了什么吗?会不会有语法错误?我是 cookie 的新手,并在 localhost 上使用 url api.app.localhost 尝试此操作。
Edit#1:事实上,首先用 echo $_COOKIE["true"] 替换也会给出空白输出。语法错了吗?
【问题讨论】:
-
我建议
$_COOKIE全局变量包含您在请求中收到的cookie,并且您的新cookie 不会存储在那里,而是准备通过服务器的响应标头发送。下一次请求时,您的服务器将收到此 cookie。 -
你能澄清下一个请求是什么意思吗?
-
只需清除浏览器中的cookies,重新加载页面,第一次你会看到一个cookie名称,浏览器会通过标题收到一个新的cookie。再次重新加载页面,您可能会看到两次 cookie 名称,因为现在浏览器向您发送了一个 cookie,该 cookie 是在之前的请求中设置的。
-
没有发生这种情况。删除 cookie 后我仍然得到相同的结果。
标签: php html cookies localhost