因此,根据我对 PHP 和 cookie 的理解,如果我使用该setcookie()
函数,那么我会得到一个自动 url 编码的 cookie。当我进入$_COOKIE
数组时,我应该取回 cookie,自动对 url 进行解码。问题是,当我查看$_COOKIE
.
假设我有一个值为“Name|ID|Email”的 cookie,例如:
乔|123|my+email@somewhere.com
这将被编码为:
乔%7C123%7Cmy%2Bemail%40somewhere.com
注意加号是编码的,所以理论上我应该把它解码回来。由于这是在 中自动完成的$_COOKIE
,所以我应该找回我开始的内容。但相反,我回来了:
乔|123|我的电子邮件@somewhere.com
注意加号所在的空间。urldecode()
如果我在 cookie 上运行一个附加项,这就是我所期望的。但我不是,所以我不知道为什么我会得到一个空间而不是一个加号。
另一个有趣的转折。页面上的刷新似乎会产生正确的输出。任何想法为什么它会这样?
仅供参考,要设置初始 cookie,我使用 javascript 和escape()
脚本来生成编码字符串。这可能是javascript和PHP之间的一个交接问题吗?
想法将不胜感激。