首頁  >  文章  >  後端開發  >  php、js中cookie操作的方法對比

php、js中cookie操作的方法對比

WBOY
WBOY原創
2016-07-25 08:56:49802瀏覽
};
  1. setcookie('php_cn_ck','php_中文_cookie');
  2. setcookie('php_en_ck','中文_cookie');
  3. setcookie('php_en_ck','中文_cookie');
  4. ?>
  5. <script> <li> Cookies.set('js_cn_ck','js_中文_cookie',5000); <li> Cookies.set('js_en_ck','js_english_cookie'); <li></script>
  6. PHP cookie已經設定:php_cn_ck=php_中文_cookie、php_en_ck=php_english_cookie。
  7. JS cookie已經設定:js_cn_ck=js_中文_cookie、js_en_ck=js_english_cookie。
  8. 讀取cookie
複製程式碼


一,讀取php傳送的中英文cookie

1,php讀取php設定php cookie
  1. include('function.php');
  2. $php_cn_ck=$_COOKIE['php_cn_ck']; $un_php_cn_ck=unescape($php_cn_ck);
  3. echo "解碼前的中文cookie:php_cn_ck=$php_cn_ck

    ";
  4. echo "解碼後的中文cookie:un_php_cn_ck=$un_&cn_ck=$un_&cn_ck
    ";
  5. $php_en_ck=$_COOKIE['php_en_ck'];
  6. echo "英文cookie無解碼:php_en_ck=$php_en_ck

    ";
  7. ?>
複製程式碼

2,js讀取php設定cookie

  1. <script> <li> php_cn_ck=Cookies.get('php_cn_ck' ); <li> un_php_cn_ck = decodeURIComponent (escape(php_cn_ck)); <li> document.write("解碼前的中文cookie :php_cn_ck="+php_cn_ck+"<Br><br>"); ("解碼後的中文cookie :un_php_cn_ck="+un_php_cn_ck+"<Br><br>"); <li> php_en_ck=Cookies.get('php_en_ck'); <li> document.write("英文cookie php_en_ck="+php_en_ck+"<Br><br>"); <li></script>
複製程式碼
二,讀取JS傳送的中英文cookie 1,php讀取JS設定js cookie

  1. $js_cn_ck=$_COOKIE['js_cn_ck'];
  2. $un_js_cnck=ckscape($js_ck); echo "解碼前的中文cookie:js_cn_ck=$js_cn_ck";
  3. echo "解碼後的中文cookie:un_js_cn_ck=$un_js_cn_ck";
  4. $js_en_ck=$_COOKIE['js_ck_ck";
  5. $js_en_ck=$_COOKIE['js_en_ck";
  6. $js_en_ck=$_COOKIE['js_en_ck"; $js_en_ck=$_COOKIE['js_en_ck"; ?>
複製程式碼
2,jsjs設定設定的cookie

  1. <script> <li> js_cn_ck=Cookies.get('js_cn_ck'); <li> document.write("解碼前的中文」解碼前的中文_C_ck_ck_c: ="+js_cn_ck+"<Br><br>"); <li> //un_js_cn_ck = decodeURIComponent (escape(js_cn_ck)); 呼叫這兩句會出現js解析中斷<li> //document.write("解碼後的中文cookie :un_js_cn_ck="+un_js_cn_ck+"<Br><br>"); <li> js_en_ck=Cookies.get('js_en_ck'); <li> document.write("英文cookie無解碼:js_en_ck="+js_ "<Br><br>"); <li></script>
複製程式碼

總結: 1,php用自身函數讀取php 的cookie,沒有任何障礙,無需解碼處理。 2,js採用cookie.js方法讀取js 的cookie,沒有任何障礙,無需解碼處理。 3,js讀取php的中文cookie,需要做 "decodeURIComponent (escape(php_cn_ck)) "函式處理。 4,php讀取js的中文cookie 需要做 "unescape()" 函式處理。 代碼:

  1. var Cookies = {};
  2. /**
  3. * 設定Cookies
  4. */
  5. Cookies.set = function(name, value){
  6. var argv = arguments;
  7. var argc = arguments.length;
  8. var expires = (argc > 2) ? argv[2] : null;
  9. if(expires != null){
  10. if(expires != null){
  11. if(expires != null){
  12. if(expires ! var exp   = new Date();
  13. exp.setTime(exp.getTime() + 8*3600 + expires);
  14. }
  15. alert(exp.toGMTString());
  16. }
  17. alert(exp.toGMTString());
  18. var path = (argc > 3) ? argv[3] : '/';
  19. var domain = (argc > 4) ? argv[4] : null;
  20. var secure = (argc > 5) ? argv[5] : false;
  21. document.cookie = name + "=" + escape (value) +
  22. ((expires == null) ? "" : ("; expires=" + exp.toGMTString())) +
  23. ((path == null) ? "" : ("; path=" + path)) +
  24. ((domain == null) ? "" : ("; domain=" + domain)) +
  25. ((secure == true) ? "; secure" : "");
  26. };
  27. /**
  28. * 讀取Cookies
  29. */
  30. Cookies.get = function(name){
  31. var arg = name + "=";
  32. var alen = arg.length;
  33. var clen = document.cookie.length;
  34. var i = 0;
  35. var j = 0;
  36. var i = 0;
  37. var j = 0;
  38. while(i j = i + alen;
  39. if (document.cookie.substring(i, j) == arg)
  40. return Cookies.getCookieVal(j);
  41. i = document.cookie.indexOf(" ", i) + 1;
  42. if(i == 0)
  43. break;
  44. }
  45. return null;
  46. };
  47. / **
  48. * 清除Cookies
  49. */
  50. Cookies.clear = function(name) {
  51. if(Cookies.get(name)){
  52. var expdate = new Date();
  53. expdate.setTime( expdate.getTime() - (86400 * 1000 * 1));
  54. Cookies.set(name, "", expdate);
  55. }
  56. };
  57. Cookies.getCookieVal = function(offset) {
var endstr = document.cookie.indexOf(";", offset);
if(endstr == -1){ endstr = document.cookie.length; }
return unescape(document.cookie.substring(offset, endstr));
複製程式碼


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn