【问题标题】:Change in Cookie information, when read from PHP从 PHP 读取时 Cookie 信息的变化
【发布时间】:2011-10-27 07:15:31
【问题描述】:

我的问题是这个。我正在使用 java 脚本设置一个 cookie,其中包含值

"MXGWJfgr4HDINl/BdAfBUf12710aFNcaIQKgGJ7VShxvprVo1XK+Hntg"  

现在,当我在 PHP 页面上接收并读取此 cookie 时,我得到的内容为

"MXGWJfgr4HDINl/BdAfBUf12710aFNcaIQKgGJ7VShxvprVo1XK Hntg"

“+”号变为空格字符。为什么会这样?

【问题讨论】:

  • 某事是 cookie 内容的 URL 编码(或 URL 解码)。你在每一端使用什么代码?
  • 我不使用任何 URI 编码。只需将其设置为 doucment.cookie=name="value";抱歉,我是新手。
  • @dev:我无法从 PHP 设置 cookie。因为我是从 javascript 中设置它的,它的值是我使用来自 java 后端的 web 服务获取的。我从 java 后端显示页面。
  • 尝试在cookie中存储encodeURIComponent("MXGWJfgr4HDINl/BdAfBUf12710aFNcaIQKgGJ7VShxvprVo1XK+Hntg")

标签: php javascript cookies


【解决方案1】:

根据document.cookie参考:

cookie 值字符串可以使用 encodeURIComponent() 来确保 字符串不包含任何逗号、分号或空格 (在 cookie 值中是不允许的)。

所以这就是你需要做的:

document.cookie = "foobar=" + encodeURIComponent("MXGWJfgr4HDINl/BdAfBUf12710aFNcaIQKgGJ7VShxvprVo1XK+Hntg");
alert(document.cookie); // + becomes %2B which PHP will interpret and decode automatically

【讨论】:

  • 感谢您的准确回答
猜你喜欢
  • 2012-05-22
  • 2015-07-13
  • 2013-11-10
  • 2013-11-09
  • 1970-01-01
  • 2018-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多