Home  >  Article  >  Backend Development  >  Example analysis of php+JavaScript's reading, writing and interactive operation methods for Cookies

Example analysis of php+JavaScript's reading, writing and interactive operation methods for Cookies

黄舟
黄舟Original
2017-08-08 09:49:501259browse

This article mainly introduces the reading, writing and interactive operation methods of PHP and JavaScript for cookies. It combines examples to analyze how php and javascript set cookies, php reads cookies set by php and js, and js reads php and js settings. For cookies and other related operating skills, friends in need can refer to the following

This article describes the reading, writing and interactive operation methods of PHP and JavaScript for cookies. Share it with everyone for your reference, the details are as follows:

The following examples list several interaction scenarios and list the methods of interaction between JS and PHP. To summarize, we will avoid being troubled by cookie issues in the future.


<?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 cookie has been set:
php_cn_ck=php_中文_cookie
php_en_ck=php_english_cookie

JS cookie has been set:
js_cn_ck=js_中文_cookie
js_en_ck=js_english_cookie

Read cookie

Read the Chinese and English cookies sent by 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 read JS Transmitted Chinese and English cookies

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 read Get the cookie set by 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>

Summary:

1. PHP uses its own function There is no obstacle to reading PHP cookies and no decoding is required.
2. js uses the cookie.js method to read js cookies without any obstacles and without decoding.
3. JS needs to do "decodeURIComponent (escape(php_cn_ck))" to read the Chinese cookie of php.
4. php needs to do " unescape()" function processing

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] : &#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));
};

The above is the detailed content of Example analysis of php+JavaScript's reading, writing and interactive operation methods for Cookies. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn