>백엔드 개발 >PHP 튜토리얼 >php+JavaScript의 쿠키 읽기, 쓰기 및 대화형 작업 방법 분석 예

php+JavaScript의 쿠키 읽기, 쓰기 및 대화형 작업 방법 분석 예

黄舟
黄舟원래의
2017-08-08 09:49:501310검색

이 글에서는 쿠키에 대한 PHP와 JavaScript의 읽기, 쓰기 및 대화형 작업 방법을 주로 소개하여 php와 javascript가 쿠키를 설정하는 방법, php가 php와 js에 의해 설정된 쿠키를 읽는 방법, js가 php와 js에 의해 설정된 쿠키를 읽는 방법을 분석합니다. . 필요한 친구들은 관련 작업 기술을 참고할 수 있습니다.

이 문서에서는 쿠키에 대한 PHP 및 JavaScript의 읽기, 쓰기 및 대화형 작업 방법을 설명합니다. 참조를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

다음 예에서는 여러 상호 작용 시나리오를 나열하고 JS와 PHP 간의 상호 작용 방법을 나열합니다. 정리하자면, 앞으로는 쿠키 문제로 어려움을 겪는 일이 없도록 하겠습니다.


<?php
 setcookie(&#39;php_cn_ck&#39;,&#39;php_中文_cookie&#39;);
 setcookie(&#39;php_en_ck&#39;,&#39;php_english_cookie&#39;);
?>


<script src="cookie.js"></script>
<script>
 Cookies.set(&#39;js_cn_ck&#39;,&#39;js_中文_cookie&#39;,5000);
 Cookies.set(&#39;js_en_ck&#39;,&#39;js_english_cookie&#39;);
</script>

PHP 쿠키가 설정되었습니다:
php_cn_ck=php_中文_cookie
php_en_ck=php_english_cookie

JS 쿠키가 설정되었습니다:
js_cn_ck= js_중국어_쿠키
js_en_ck=js_english_cookie

쿠키 읽기

php

1 php read php set php cookie


<?php
 include(&#39;function.php&#39;);
 $php_cn_ck=$_COOKIE[&#39;php_cn_ck&#39;];
 $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[&#39;php_en_ck&#39;];
 echo "英文cookie无需解码:php_en_ck=$php_en_ck<br><br>";
?>

2 js read php set cookie


<script src="cookie.js"></script>
<script>
 php_cn_ck=Cookies.get(&#39;php_cn_ck&#39;);
 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(&#39;php_en_ck&#39;);
 document.write("英文cookie无需解码 :php_en_ck="+php_en_ck+"<Br><br>");
</script>

2 JS가 보낸 중국어 및 영어 쿠키 읽기

1 php read JS set js cookie


<?php
 $js_cn_ck=$_COOKIE[&#39;js_cn_ck&#39;];
 $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[&#39;js_en_ck&#39;];
 echo "英文cookie无需解码:js_en_ck=$js_en_ck<br><br>";
?>

2 js js


<script>
 js_cn_ck=Cookies.get(&#39;js_cn_ck&#39;);
 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(&#39;js_en_ck&#39;);
 document.write("英文cookie无需解码 :js_en_ck="+js_en_ck+"<Br><br>");
</script>

요약:

1.PHP는 자체 기능을 사용하여 아무런 장애물이나 디코딩 없이 PHP 쿠키를 읽습니다.
2.js는 cookie.js 메서드를 사용하여 장애물이나 디코딩 없이 js 쿠키를 읽습니다.
3. JS는 php
4의 중국어 쿠키를 읽으려면 "decodeURIComponent(escape(php_cn_ck))" 기능을 수행해야 합니다. php는 php의 중국어 쿠키를 읽으려면 "unescape()" 기능을 수행해야 합니다.

쿠키 .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] : &#39;/&#39;;
 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));
};

위 내용은 php+JavaScript의 쿠키 읽기, 쓰기 및 대화형 작업 방법 분석 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.