作者tentenlee (天天)
看板PHP
标题[请益] php与javascript使用cookie问题
时间Tue Mar 28 20:16:53 2017
目前是已知道如果用php的setCookie的话若前面有echo字串等等的话会存不起来。
所以就直接用JavaScript的function来存cookie function saveCookie(){}
在要存cooike的时候,就直接echo 出 <script>saveCookie(string);</script>
让javascript来处理存cookie的动作。
这部分已经OK了
但是问题是此存的资讯是json格式的字串。若直接存{"aaa":"bb"}的话会出错。
想到的解决方案是直接把此字串做urlencode,到时候php要用的话再做decode。
操作面就正常可以使用了。
但是另外一个问题就来了...
cookie再存的时候会在自己encode一次,会导致字串长度大幅变长。
浪费不少资源。
想说有没有甚麽做法可以再存的时候直接是JSON字串,PHP取的时候又不用做太多加工。
不知道大家对这种有甚麽建议?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.132.180.49
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1490703416.A.F66.html
1F:→ MOONRAKER: 不用自己土炮 有配合jquery的cookie套件 03/28 21:54
2F:→ tentenlee: 会这样搞是因为 我php端回去读cookie 然後判断新的去塞 03/28 22:36
3F:→ tentenlee: 会把新的资料塞回去cookie里面 03/28 22:36
4F:→ MOONRAKER: 你不是说会有json又有encode的问题 jquery cookie就都 03/28 23:49
5F:→ MOONRAKER: 不会碰到这些问题了 你还要解释什麽 03/28 23:50
6F:→ tentenlee: 用urlencode的方式没问题 现在是encode下去太长 03/29 00:06
7F:→ tentenlee: 想说有甚麽方法可以处理这段 03/29 00:07
8F:推 rickysu: 首先 cookie 是放在 header 中, set cookie 前不能有任何 03/30 09:54
9F:→ rickysu: echo 或是 html 输出。 03/30 09:55
10F:推 rickysu: 另外 cookie 请由 server 指定,并且加上 HttpOnly 03/30 09:58
11F:→ rickysu: 避免 js 可以直接取得 cookie (这会有安全疑虑) 03/30 09:59