use*_*830 19 php cookies setcookie
因此,根据我对PHP和cookie的理解,如果我使用该setcookie()函数,那么我会得到一个自动进行url编码的cookie.当我去$_COOKIE数组时,我应该恢复cookie,自动解码url.问题是,当我查看时,似乎是两次解码cookie $_COOKIE.
假设我有一个cookie,其值为"Name | ID | Email",例如:
Joe|123|my+email@somewhere.com
这将被编码为:
乔%7C123%7Cmy%2Bemail%40somewhere.com
注意加号是编码的,所以理论上我应该把它解回来,如果我解码它.由于这是自动完成的$_COOKIE,我应该回到我的开始.但相反,我回来了:
Joe | 123 | my email@somewhere.com
注意曾经是加号的空间.如果我urldecode()在cookie上额外运行,这就是我所期望的.但我不是,所以我不知道为什么我会得到一个空间而不是一个加号.
另一个有趣的转折 页面上的刷新似乎产生了正确的输出.任何想法为什么它的行为像这样?
仅供参考,要设置初始cookie,我使用javascript和escape()脚本来生成编码字符串.这可能是javascript和PHP之间的问题吗?
我们将不胜感激.
值得注意的是,"%20"和"+"都是空格字符的有效编码.根据Wikipedia关于URL编码的文章(重点添加):
当提交已输入HTML表单的数据时,表单字段名称和值将被编码并使用方法GET或POST在HTTP请求消息中发送到服务器,或者历史上通过电子邮件发送到服务器.默认使用的编码基于一般URI百分比编码规则的早期版本,具有许多修改,例如换行标准化和用"+"而不是"%20"替换空格.以这种方式编码的MIME类型的数据是application/x-www-form-urlencoded,并且它当前在HTML和XForms规范中定义(仍然以非常过时的方式).
更具体地涉及PHP和JavaScript,请参阅此问题的最佳答案:
| 归档时间: |
|
| 查看次数: |
7323 次 |
| 最近记录: |