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

藏色散人
Libérer: 2023-03-08 18:52:01
original
2388 Les gens l'ont consulté

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"));
?>
Copier après la connexion

<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>
Copier après la connexion

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>
Copier après la connexion
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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal