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

WBOY
Freigeben: 2016-07-25 08:56:49
Original
855 Leute haben es durchsucht
  1. setcookie('php_cn_ck','php_中文_cookie');
  2. setcookie('php_en_ck','php_english_cookie');
  3. ?>
  4. <script> <li> Cookies.set('js_cn_ck','js_中文_cookie',5000); <li> Cookies.set('js_en_ck','js_english_cookie'); <li></script>
  5. PHP cookie已经设置:php_cn_ck=php_中文_cookie、php_en_ck=php_english_cookie。
  6. JS cookie已经设置:js_cn_ck=js_中文_cookie、js_en_ck=js_english_cookie。
  7. 读取cookie
复制代码

一,读取php传送的中英文cookie

1,php读取php设置php cookie

  1. include('function.php');
  2. $php_cn_ck=$_COOKIE['php_cn_ck'];
  3. $un_php_cn_ck=unescape($php_cn_ck);
  4. echo "解码前的中文cookie:php_cn_ck=$php_cn_ck

    ";
  5. echo "解码后的中文cookie:un_php_cn_ck=$un_php_cn_ck

    ";
  6. $php_en_ck=$_COOKIE['php_en_ck'];
  7. echo "英文cookie无需解码:php_en_ck=$php_en_ck

    ";
  8. ?>
复制代码

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>"); <li> document.write("解码后的中文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_cn_ck=unescape($js_cn_ck);
  3. echo "解码前的中文cookie:js_cn_ck=$js_cn_ck";
  4. echo "解码后的中文cookie:un_js_cn_ck=$un_js_cn_ck";
  5. $js_en_ck=$_COOKIE['js_en_ck'];
  6. echo "英文cookie无需解码:js_en_ck=$js_en_ck";
  7. ?>
复制代码

2,js读取js设置的cookie

  1. <script> <li> js_cn_ck=Cookies.get('js_cn_ck'); <li> document.write("解码前的中文cookie :js_cn_ck="+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_en_ck+"<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. var exp   = new Date();
  11. exp.setTime(exp.getTime() + 8*3600 + expires);
  12. }
  13. alert(exp.toGMTString());
  14. var path = (argc > 3) ? argv[3] : '/';
  15. var domain = (argc > 4) ? argv[4] : null;
  16. var secure = (argc > 5) ? argv[5] : false;
  17. document.cookie = name + "=" + escape (value) +
  18. ((expires == null) ? "" : ("; expires=" + exp.toGMTString())) +
  19. ((path == null) ? "" : ("; path=" + path)) +
  20. ((domain == null) ? "" : ("; domain=" + domain)) +
  21. ((secure == true) ? "; secure" : "");
  22. };
  23. /**
  24. * 读取Cookies
  25. */
  26. Cookies.get = function(name){
  27. var arg = name + "=";
  28. var alen = arg.length;
  29. var clen = document.cookie.length;
  30. var i = 0;
  31. var j = 0;
  32. while(i j = i + alen;
  33. if (document.cookie.substring(i, j) == arg)
  34. return Cookies.getCookieVal(j);
  35. i = document.cookie.indexOf(" ", i) + 1;
  36. if(i == 0)
  37. break;
  38. }
  39. return null;
  40. };
  41. /**
  42. * 清除Cookies
  43. */
  44. Cookies.clear = function(name) {
  45. if(Cookies.get(name)){
  46. var expdate = new Date();
  47. expdate.setTime(expdate.getTime() - (86400 * 1000 * 1));
  48. Cookies.set(name, "", expdate);
  49. }
  50. };
  51. Cookies.getCookieVal = function(offset){
  52. var endstr = document.cookie.indexOf(";", offset);
  53. if(endstr == -1){
  54. endstr = document.cookie.length;
  55. }
  56. return unescape(document.cookie.substring(offset, endstr));
  57. };
复制代码


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage