熱門文章

      最新文章

      js與PHP 相互讀取cookie的代碼

      發布時間:2021-06-22 15:26:45

      一、配置設置

      PHP cookie已經設置:
      php_cn_ck=php_中文_cookie
      php_en_ck=php_english_cookie

      JS cookie已經設置:
      js_cn_ck=js_中文_cookie
      js_en_ck=js_english_cookie

      二、寫入cookie

      <?php
       setcookie('php_cn_ck','php_中文_cookie');
       setcookie('php_en_ck','php_english_cookie');
      ?>
      <script src="cookie.js"></script>
      <script>
       Cookies.set('js_cn_ck','js_中文_cookie',5000);
       Cookies.set('js_en_ck','js_english_cookie');
      </script>

      三、讀取cookie

      1. php讀取php設置php cookie

      <?php
       include('function.php');
       $php_cn_ck=$_COOKIE['php_cn_ck'];
       $un_php_cn_ck=unescape($php_cn_ck);
       echo "解碼前的中文cookie:php_cn_ck=$php_cn_ck<br><br>";
       echo "解碼后的中文cookie:un_php_cn_ck=$un_php_cn_ck<br><br>";
       $php_en_ck=$_COOKIE['php_en_ck'];
       echo "英文cookie無需解碼:php_en_ck=$php_en_ck<br><br>";
      ?>

      2. js讀取php設置cookie

      <script src="cookie.js"></script>
      <script>
       php_cn_ck=Cookies.get('php_cn_ck');
       un_php_cn_ck = decodeURIComponent (escape(php_cn_ck));
       document.write("解碼前的中文cookie :php_cn_ck="+php_cn_ck+"<Br><br>");
       document.write("解碼后的中文cookie :un_php_cn_ck="+un_php_cn_ck+"<Br><br>");
       php_en_ck=Cookies.get('php_en_ck');
       document.write("英文cookie無需解碼 :php_en_ck="+php_en_ck+"<Br><br>");
      </script>

      3. php讀取JS設置js cookie

      <?php
       $js_cn_ck=$_COOKIE['js_cn_ck'];
       $un_js_cn_ck=unescape($js_cn_ck);
       echo "解碼前的中文cookie:js_cn_ck=$js_cn_ck<br><br>";
       echo "解碼后的中文cookie:un_js_cn_ck=$un_js_cn_ck<br><br>";
       $js_en_ck=$_COOKIE['js_en_ck'];
       echo "英文cookie無需解碼:js_en_ck=$js_en_ck<br><br>";
      ?>

      4.js讀取js設置的cookie

      <script>
       js_cn_ck=Cookies.get('js_cn_ck');
       document.write("解碼前的中文cookie :js_cn_ck="+js_cn_ck+"<Br><br>");
       //un_js_cn_ck = decodeURIComponent (escape(js_cn_ck)); 調用這兩句會出現js解析中斷
       //document.write("解碼后的中文cookie :un_js_cn_ck="+un_js_cn_ck+"<Br><br>");
       js_en_ck=Cookies.get('js_en_ck');
       document.write("英文cookie無需解碼 :js_en_ck="+js_en_ck+"<Br><br>");
      </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()" 函數處理

      cookie.js:

      var Cookies = {};
      /**
      * 設置Cookies
      */
      Cookies.set = function(name, value){
       var argv = arguments;
       var argc = arguments.length;
       var expires = (argc > 2) ? argv[2] : null;
       if(expires != null){
        var exp   = new Date();
        exp.setTime(exp.getTime() + 8*3600 + expires);
       }
       alert(exp.toGMTString());
       var path = (argc > 3) ? argv[3] : '/';
       var domain = (argc > 4) ? argv[4] : null;
        var secure = (argc > 5) ? argv[5] : false;
       document.cookie = name + "=" + escape (value) +
       ((expires == null) ? "" : ("; expires=" + exp.toGMTString())) +
       ((path == null) ? "" : ("; path=" + path)) +
       ((domain == null) ? "" : ("; domain=" + domain)) +
       ((secure == true) ? "; secure" : "");
      };
      /**
      * 讀取Cookies
      */
      Cookies.get = function(name){
       var arg = name + "=";
       var alen = arg.length;
       var clen = document.cookie.length;
       var i = 0;
       var j = 0;
       while(i < clen){
        j = i + alen;
        if (document.cookie.substring(i, j) == arg)
        return Cookies.getCookieVal(j);
        i = document.cookie.indexOf(" ", i) + 1;
        if(i == 0)
        break;
       }
       return null;
      };
      /**
      * 清除Cookies
      */
      Cookies.clear = function(name) {
       if(Cookies.get(name)){
       var expdate = new Date();
       expdate.setTime(expdate.getTime() - (86400 * 1000 * 1));
       Cookies.set(name, "", expdate);
       }
      };
      Cookies.getCookieVal = function(offset){
       var endstr = document.cookie.indexOf(";", offset);
       if(endstr == -1){
        endstr = document.cookie.length;
       }
       return unescape(document.cookie.substring(offset, endstr));
      };

      返回頂部
      主站蜘蛛池模板: 国产视频一区二区在线播放| 精品福利一区二区三区精品国产第一国产综合精品 | 欧美日本精品一区二区三区| 国产精品一区二区久久| 亚洲欧美日韩国产精品一区| 久久久无码精品人妻一区| 国产suv精品一区二区6| 99精品高清视频一区二区| 日本成人一区二区| 国产精品视频一区二区三区经| 日韩一区二区a片免费观看| 国产一区二区三区不卡在线观看| 日韩精品无码一区二区视频| 人妻体内射精一区二区三区| 在线成人综合色一区| 中文字幕国产一区| 亚洲av无码一区二区三区天堂古代| 无码人妻精一区二区三区| 亚洲AV无码一区二区三区国产| 日韩精品一区二区三区四区| 无码精品一区二区三区| 一区二区三区日本视频| 人妻体体内射精一区二区| 无码精品人妻一区二区三区影院| 国产精品伦一区二区三级视频| 狠狠色综合一区二区| 一区二区在线视频观看| 无码欧精品亚洲日韩一区| 国产一区美女视频| 免费播放一区二区三区| 日韩动漫av在线播放一区| 91一区二区视频| 一级毛片完整版免费播放一区| 一区二区精品在线| 亚洲一区日韩高清中文字幕亚洲| 亚洲欧洲日韩国产一区二区三区| 中文字幕亚洲一区二区三区| 国产福利在线观看一区二区 | 亚洲一区二区久久| 无码人妻AⅤ一区二区三区水密桃 无码欧精品亚洲日韩一区夜夜嗨 无码毛片一区二区三区中文字幕 无码毛片一区二区三区视频免费播放 | 中文字幕一区视频|