【问题标题】:$_COOKIE['id'] returns 1 instead of value$_COOKIE['id'] 返回 1 而不是 value
【发布时间】:2020-06-10 13:13:31
【问题描述】:

我正在为某人更新一个旧脚本。它在登录时将 id 存储在 cookie 中,然后在加载页面时将其读回以返回正确的用户数据。稍后我会将其更改为使用会话,但现在我希望它能够工作......

问题是 cookie 确实设置为正确的值(我在开发者工具中检查它),但是当我通过 $_COOKIE['id'] 请求该值时,它总是返回 '1'。

有人知道为什么会这样吗?

代码: 设置cookie在'/modules/users/login.php'

setcookie("id", $row['id'], time()+$_POST['tijdingelogd'],'/');

编辑:添加信息 设置 cookie 值后,访问者被重定向使用:

header("location:/index.php");

读取cookie在'/connection/functions.php

echo $_COOKIE['id'];

【问题讨论】:

  • 什么是“正确的价值”???
  • 在我的情况下它应该是 2(在开发者工具中我可以看到 cookie 值设置为 2)
  • 你确定$row['id']在这种情况下等于二吗?
  • 正如我所说,cookie[id] 值设置为 2,我可以在开发人员工具中看到
  • echo $_COOKIE['id']; 将在页面重新加载时显示,因为它是从页面上的 cookie 中提取的,而不是您的脚本准备发送的 cookie。

标签: php setcookie


【解决方案1】:

我找到了答案,在检查访问者是否登录期间,cookie 的值在脚本中被重置为 1。这没有反映在开发人员工具中,因此我很困惑。

对于将来访问此线程的访问者,设置值而不反映在开发人员工具中的代码是:

$_COOKIE['userid'] = 1;

感谢所有回答这个帖子的人

【讨论】:

  • $_COOKIE 存储由 PHP 接收的 cookie。要在响应中发出 cookie,请使用 setcookie()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-24
  • 1970-01-01
  • 1970-01-01
  • 2018-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多