Maison >développement back-end >Problème PHP >Comment résoudre le problème tronqué des cookies php

Comment résoudre le problème tronqué des cookies php

藏色散人
藏色散人original
2021-03-17 09:44:362390parcourir

La solution aux cookies php tronqués : encodez-le d'abord avec l'Url lors de l'écriture du Cookie ; puis réécrivez le Cookie et enfin décodez l'Url lors de la lecture ;

Comment résoudre le problème tronqué des cookies php

L'environnement d'exploitation de cet article : système windows7, version PHP7.1, ordinateur DELL G3

Chinois quand php et js transférer des cookies entre eux Le problème des caractères tronqués

JS stocke les cookies, et lorsque PHP les lit, ils deviennent des caractères tronqués.

Analyse du problème :

Ceci est dû à l'encodage des caractères. Les caractères chinois ont deux encodages, c'est pourquoi de tels caractères tronqués sont produits !

Solution :

1 : Lors de l'écriture du Cookie, encodez-le d'abord avec l'URL, puis écrivez-le

2 : Lorsque nous le lisons, décodez l'URL disponible <.>

php deux fonctions

urlencode()

urldecode()

js deux fonctions Fonction

decodeURI()

encodeURI()

php définit le cookie, js lit le cookie

<?php
setcookie ("TestCookie", urlencode("这就是网页21"));
?>

<script type="text/javascript">
    alert(decodeURI(getCookie("TestCookie")))
    function getCookie(sName) {
    var aCookie = document.cookie.split(&#39;; &#39;);
    for (var i=0; i < aCookie.length; i++) {
    var aCrumb = aCookie[i].split(&#39;=&#39;);
    if (sName == aCrumb[0])
    return decodeURI(aCrumb[1]);
 }
 return &#39;&#39;;
}
</script>

js définit le cookie Lecture des cookies en php

<script type="text/javascript">function setCookie(name, value, time){
    var nameString = name + &#39;=&#39; + encodeURI(value);
    var expiryString = "";
    if(time !== 0) {
        var expdate = new Date();
        if(time == null || isNaN(time)) time = 60*60*1000;
        expdate.setTime(expdate.getTime() +  time);
     expiryString = &#39; ;expires = &#39;+ expdate.toGMTString();
 }
 var path = " ;path =/";
 document.cookie = nameString + expiryString + path;
}setCookie("TestJsCookie", "我是中国人", 0)  </script>
rrree

Apprentissage recommandé : "

Tutoriel vidéo PHP"

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