Maison >développement back-end >tutoriel php >Exemple d'analyse des méthodes de lecture, d'écriture et de fonctionnement interactif de php+JavaScript pour les cookies

Exemple d'analyse des méthodes de lecture, d'écriture et de fonctionnement interactif de php+JavaScript pour les cookies

黄舟
黄舟original
2017-08-08 09:49:501309parcourir

Cet article présente principalement les méthodes de lecture, d'écriture et de fonctionnement interactif de PHP et JavaScript pour les cookies. Il combine des exemples pour analyser comment php et javascript définissent les cookies, php lit les cookies définis par php et js, et js lit les paramètres php et js. . Pour les cookies et autres compétences de fonctionnement connexes, les amis dans le besoin peuvent se référer à

Cet article décrit les méthodes de lecture, d'écriture et de fonctionnement interactif de PHP et JavaScript pour les cookies. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Les exemples suivants répertorient plusieurs scénarios d'interaction et répertorient les méthodes d'interaction entre JS et PHP. En résumé, nous éviterons d’être dérangés par des problèmes de cookies à l’avenir.


<?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>

Le cookie PHP a été défini :
php_cn_ck=php_中文_ cookie
php_en_ck=php_english_cookie

Le cookie JS a été défini :
js_cn_ck=js_中文_cookie
js_en_ck=js_english_cookie

Lire le cookie

Lire les cookies chinois et anglais envoyés par 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 lit le cookie des paramètres php


<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>

Deuxième lecture des cookies chinois et anglais envoyés par JS

1 php lecture JS paramètre 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 lit le cookie défini par 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>

Résumé :

1. PHP utilise sa propre fonction pour lire les cookies PHP sans aucun obstacle et sans décodage.
2. js utilise la méthode cookie.js pour lire les cookies js sans aucun obstacle et sans décodage.
3. JS doit effectuer le traitement de la fonction "decodeURIComponent (escape(php_cn_ck))" pour lire le cookie chinois de php
4 php doit effectuer " unescape()" traitement des fonctions

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));
};

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn