>백엔드 개발 >PHP 튜토리얼 >php와 js의 쿠키 연산 방식 비교

php와 js의 쿠키 연산 방식 비교

WBOY
WBOY원래의
2016-07-25 08:56:49867검색
  1. setcookie('php_cn_ck','php_中文_cookie')
  2. setcookie('php_en_ck','php_english_cookie') ;
  3. ?>
  4. <script> Cookies.set('js_cn_ck','js_中文_ cookie',5000); </li> <li> Cookies.set('js_en_ck','js_english_cookie') </li> <li></script>
  5. PHP 쿠키가 설정되었습니다: php_cn_ck=php_中文_cookie, php_en_ck=php_english_cookie.
  6. JS 쿠키가 설정되었습니다: js_cn_ck=js_中文_cookie, js_en_ck=js_english_cookie.
  7. 쿠키 읽기
코드 복사
1. php에서 보낸 중국어, 영어 쿠키 읽기


1. PHP는 PHP를 읽고 PHP 쿠키를 설정합니다.

  1. include('function.php')
  2. $php_cn_ck=$_COOKIE['php_cn_ck']; > $un_php_cn_ck=unescape($php_cn_ck);
  3. echo "디코딩 전 중국어 쿠키:php_cn_ck=$php_cn_ck

    "
  4. echo "디코딩 후 중국어 쿠키:un_php_cn_ck=$un_php_cn_ck< br>
    ";
  5. $php_en_ck=$_COOKIE['php_en_ck'];
  6. echo "영어 쿠키는 디코딩할 필요가 없습니다: php_en_ck=$php_en_ck

    ";
  7. ?> ;
코드 복사
2, js는 PHP 설정 쿠키를 읽습니다



  1. <script> </li> <li> php_cn_ck=Cookies.get ('php_cn_ck'); </li> <li> un_php_cn_ck = decodeURIComponent (escape(php_cn_ck)); </li> <li> document.write("디코딩 전 중국어 쿠키:php_cn_ck=" php_cn_ck "<Br><br>"); > document.write("디코딩된 중국어 쿠키 :un_php_cn_ck=" un_php_cn_ck "<Br><br>"); </li> <li> php_en_ck=Cookies.get('php_en_ck') </li> <li> document.write( "영어 쿠키 디코딩할 필요가 없습니다: php_en_ck=" php_en_ck "<Br><br>"); </li> <li></script>
  2. 코드 복사
2. JS에서 보낸 중국어, 영어 쿠키 읽기 1. PHP는 JS를 읽고 js 쿠키를 설정합니다.

$js_cn_ck=$_COOKIE['js_cn_ck']
  • $un_js_cn_ck=unescape($js_cn_ck); > echo "디코딩 전 중국어 쿠키: js_cn_ck=$js_cn_ck";
  • echo "디코딩 후 중국어 쿠키: un_js_cn_ck=$un_js_cn_ck"
  • $js_en_ck=$_COOKIE['js_en_ck']
  • echo "영어 쿠키는 디코딩할 필요가 없습니다: js_en_ck=$js_en_ck";
  • ?>
  • 코드 복사
  • 2, js는 쿠키 세트를 읽습니다. 작성자: js

    <script> <div id="code_LFF"> js_cn_ck=Cookies.get('js_cn_ck') <ol> document.write("디코딩 전 중국어 쿠키: js_cn_ck =" js_cn_ck "<Br><br>"); <li> //un_js_cn_ck = decodeURIComponent (escape(js_cn_ck)); 이 두 문장을 호출하면 js 구문 분석이 중단됩니다.</li> <li> //document.write("Decode 다음 중국어 쿠키 :un_js_cn_ck=" un_js_cn_ck "<Br><br>"); </li> <li> js_en_ck=Cookies.get('js_en_ck'); </li> <li> document.write("영어 쿠키는 디코딩할 필요가 없습니다. : js_en_ck= " js_en_ck "<Br><br>"); </li> <li></script>
  • 코드 복사
  • 요약: 1. PHP는 자체 기능을 사용하여 아무런 장애물이나 디코딩 없이 PHP 쿠키를 읽습니다. 2. js는 cookie.js 메서드를 사용하여 장애물이나 디코딩 없이 js 쿠키를 읽습니다. 3. js로 PHP의 중국어 쿠키를 읽으려면 "decodeURIComponent (escape(php_cn_ck))" 함수 처리를 해야 합니다. 4. PHP는 JS의 중국어 쿠키를 읽으려면 "unescape()" 함수를 사용해야 합니다. 암호:

    1. var Cookies = {};
    2. /**
    3. * 쿠키 설정
    4. */
    5. Cookies.set = 함수(이름, 값){
    6. var argv = 인수;
    7. var argc =args.length;
    8. var 만료 = (argc > 2) ? argv[2] : null
    9. if(expires != null) > var exp  = new Date();
    10. exp.setTime(exp.getTime() 8*3600 만료)
    11. }
    12. Alert(exp.toGMTString()); var path = ( argc > 3) ? argv[3] : '/';
    13. var 도메인 = (argc > 4) : null; 5] : false;
    14. document.cookie = name "=" escape (value)
    15. ((expires == null) ? "" : (";expires=" exp.toGMTString()))
    16. ((경로 == null) ? "" : ("; path=" 경로))
    17. ((도메인 == null) ? "" : ("; domain=" 도메인))
    18. ((보안 = = true) ? "; secure" : "");
    19. /**
    20. * 쿠키 읽기
    21. */
    22. Cookies.get = function(name){
    23. var arg = name "= ";
    24. var alen = arg.length;
    25. var clen = document.cookie.length;
    26. var i = 0;
    27. var j = 0;
    28. while(i < clen) {
    29. j = i alen;
    30. if (document.cookie.substring(i, j) == arg)
    31. return Cookies.getCookieVal(j)
    32. i = document.cookie.indexOf( " ", i) 1; if(i == 0)
    33. break;
    34. }
    35. return null
    36. /**
    37. * 쿠키 지우기
    38. */
    39. Cookies.clear = function(name) {
    40. if(Cookies.get(name)){
    41. var expdate = new Date()
    42. expdate.setTime(expdate.getTime() - (86400 * 1000 * 1));
    43. Cookies.set(name, "", expdate);
    44. }
    45. }
    46. Cookies.getCookieVal = function(offset){
    47. var endstr = document. cookie.indexOf(";", offset);
    48. if(endstr == -1){
    49. endstr = document.cookie.length;
    50. }
    51. return unescape(document.cookie.substring( offset, endstr))
    52. };
    53. 코드 복사
  • 성명:
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.