首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php $_COOKIE isset

php $_COOKIE isset
EN

Stack Overflow用户
提问于 2012-02-23 22:47:17
回答 2查看 51.4K关注 0票数 0

我使用此代码来设置cookie,然后查看它们是否存在。

代码语言:javascript
复制
setcookie("token", "value", time()+60*60*24*100, "/");
setcookie("secret", "value", time()+60*60*24*100, "/");
setcookie("key", "value", time()+60*60*24*100, "/");

if (!isset($_COOKIE['token']) || !isset($_COOKIE['secret']) || !isset($_COOKIE['key'])) {

// do something because one of the cookies were not set

}

即使在我的浏览器中设置了所有三个cookie,它仍然运行if()语句。通过消除过程,我发现中间cookie !isset($_COOKIE['secret'])似乎会导致if()语句运行,即使cookie secret是在我的浏览器中设置的。当我看着我的浏览器时,脚本显示它还没有设置,但它已经设置了。你能想到为什么php说它没有设置的原因吗?

EN

回答 2

Stack Overflow用户

发布于 2012-02-23 22:50:45

setcookie只定义了一个与其余HTTP头一起发送的cookie,并且可以在下一次使用$_COOKIE加载页面时访问它们。使用您的代码时,不会发送HTTP标头。

您只需要在未设置cookie时使用setcookie。像这样:

代码语言:javascript
复制
if (!isset($_COOKIE['token'])) {
    setcookie("token", "value", time()+60*60*24*100, "/");
}
票数 7
EN

Stack Overflow用户

发布于 2012-02-23 22:49:30

使用

代码语言:javascript
复制
if(true === array_key_exists('secret', $_COOKIE) && strlen($_COOKIE['secret']) > 0) {
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9415282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档