使用 cookie 传递 URL 参数字符串
Using cookies to pass URL param string
我有一个 URL,它在查询参数的值中包含"!"。 我在 cookie 中对参数字符串进行编码并加载相关页面。 从 php:
foreach ( $_GET as $key => $value ){
setcookie($key,$value,time()+60,'/');
}
在相关页面中,cookie 的值(通过 javascript/jquery $.cookie(")读取)的"!"编码为 %21。
有人可以告诉我为什么"!"被编码了吗? 它不是 cookie 值中的有效字符吗?
可以在
两个位置对数据进行编码。第一种是,当从$_GET
数组中获取时,可以对$value
进行编码,也可以使用 rawurldecode()
进行解码。编码可能发生的第二个地方是使用setcookie()
时;为避免这种情况,请改用setrawcookie()
,这将设置原始 Cookie 而不是编码的 Cookie。
foreach ( $_GET as $key => $value ){
setrawcookie($key, rawurldecode($value), time() + 60, '/');
}
有人可以告诉我为什么"!"被编码了吗?它不是 cookie 值中的有效字符吗?
看到这个答案。根据 RFC 6265,!
是 cookie 名称和值中的有效字符。如果 php 编码!
则意味着它是一个错误。
要解决此问题,您可以按照@Andrew的建议进行操作,或者使用一个名为 js-cookie 的库,该库允许使用转换器拦截 cookie 读取,然后您可以还原 PHP 在客户端中执行的编码。
相关文章:
- 从查询字符串参数推断出正确的数据类型
- 如何使用JQuery在HTML中创建包含字符串参数的引号的onclickjavascript链接
- 从带参数的字符串变量调用函数中的函数
- Javascript:用while循环在给定的count参数中重复一个字符串
- 如何格式化match()参数以定位电子邮件中的字符串
- 将JSON字符串转换为函数参数
- 如何用javascript替换Jquery字符串上的新参数
- 模版启动错误-类型错误(“参数”url'必须是字符串,而不是“+类型的url”)
- 在 URL 字符串中传递参数字符串
- 如何在附加的 html 中的字符串上连接 javascript 函数中的参数字符串
- jQuery:从参数字符串设置表单状态
- 使用 cookie 传递 URL 参数字符串
- 寻找一个正则表达式来解析 JS 的参数字符串
- 有必要限制node.js中GET请求参数字符串的大小吗
- 使用jquery获取javascript中的参数字符串
- 使用JavaScript更改url参数字符串
- 如何在提交GET表单后将变量插入到生成的url参数字符串中
- JavaScript:向JavaScript函数发送以逗号分隔的参数字符串
- 无法通过XMLHttpRequest发送参数字符串
- 从Javascript中获取url参数字符串