【问题标题】:Unable to access cookie set on same page after if statementif 语句后无法访问同一页面上设置的 cookie
【发布时间】: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


【解决方案1】:

setcookie的第三个参数表示过期时间

试试这个:

setcookie($cookie_name, $cookie_value, time() + 3600); // this expires in 1 hour

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多