作者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://www.ptt.cc/bbs/PHP/M.1490703416.A.F66.html
→ MOONRAKER: 不用自己土炮 有配合jquery的cookie套件 03/28 21:54
→ tentenlee: 會這樣搞是因為 我php端回去讀cookie 然後判斷新的去塞 03/28 22:36
→ tentenlee: 會把新的資料塞回去cookie裡面 03/28 22:36
→ MOONRAKER: 你不是說會有json又有encode的問題 jquery cookie就都 03/28 23:49
→ MOONRAKER: 不會碰到這些問題了 你還要解釋什麼 03/28 23:50
→ tentenlee: 用urlencode的方式沒問題 現在是encode下去太長 03/29 00:06
→ tentenlee: 想說有甚麼方法可以處理這段 03/29 00:07
推 rickysu: 首先 cookie 是放在 header 中, set cookie 前不能有任何 03/30 09:54
→ rickysu: echo 或是 html 輸出。 03/30 09:55
推 rickysu: 另外 cookie 請由 server 指定,並且加上 HttpOnly 03/30 09:58
→ rickysu: 避免 js 可以直接取得 cookie (這會有安全疑慮) 03/30 09:59