首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP:$token在保存到cookie时更改他的值

PHP:$token在保存到cookie时更改他的值
EN

Stack Overflow用户
提问于 2020-10-09 20:55:08
回答 1查看 32关注 0票数 1

我正在尝试设置连接cookie,但我遇到了一些问题。

代码语言:javascript
运行
复制
$token = openssl_random_pseudo_bytes(16);
$token = bin2hex($token);
setcookie('token', $token, time() + 14*24*3600, null, null, false, true);

问题是$token仅在cookie中更改了他的值:

代码语言:javascript
运行
复制
$token = openssl_random_pseudo_bytes(16);
$token = bin2hex($token);
echo $token; //939ec30ae568e2c8ee192a488cb6e646
setcookie('token', $token, time() + 14*24*3600, null, null, false, true);
echo $_COOKIE['token']; //4254ffefa72a856f40540d2bf879546a
echo $token; //939ec30ae568e2c8ee192a488cb6e646

我敢打赌这是一个愚蠢的问题,但我找不到任何原因,为什么这个变量要这样做。

(因为我有这个问题,所以我不能将它用于连接:数据库中的值不同)

EN

Stack Overflow用户

发布于 2020-10-09 21:03:35

它不是在改变它,而是在设置它,但是在页面刷新之前,您看不到$_COOKIE的值。

您认为它正在更改的原因是,它每次都会设置上一次加载的页面的cookie。

您需要检查cookie是否存在,如果不存在,则设置它。

代码语言:javascript
运行
复制
if (!isset($_COOKIE["token"])){
    $token = openssl_random_pseudo_bytes(16);
    $token = bin2hex($token);
    setcookie('token', $token, time() + 14*24*3600, null, null, false, true);
} else {
    echo $_COOKIE['token'];
}

在您的示例中,当您刷新页面时,它将生成一个新的cookie,但echo $_COOKIE‘’token‘将显示939ec30ae568e2c8ee192a488cb6e646

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64280518

复制
相关文章

相似问题

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