Heim  >  Artikel  >  Backend-Entwicklung  >  So lösen Sie das verstümmelte Problem von PHP-Cookies

So lösen Sie das verstümmelte Problem von PHP-Cookies

藏色散人
藏色散人Original
2021-03-17 09:44:362291Durchsuche

Lösung für verstümmelte PHP-Cookies: Codieren Sie das Cookie beim Schreiben zunächst mit der URL. Schreiben Sie dann das Cookie neu und entschlüsseln Sie es schließlich beim Lesen.

So lösen Sie das verstümmelte Problem von PHP-Cookies

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

Das Problem chinesischer verstümmelter Zeichen, wenn PHP und JS Cookies untereinander übertragen

js speichert Cookies und PHP liest sie in verstümmelte Zeichen.

Problemanalyse:

Dies wird durch die Textkodierung verursacht. Chinesische Schriftzeichen haben zwei Kodierungen, weshalb ein so verstümmelter Code entsteht!

Lösungsidee:

1: Wenn Sie das Cookie schreiben, kodieren Sie es zuerst mit der URL und schreiben Sie es dann

2: Wenn wir es lesen, dekodieren Sie die URL

php zwei Funktionen

urlencode ()

urldecode()

js zwei Funktionen

decodeURI()

encodeURI()

php setzt Cookie, js liest 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 setzt Cookie PHP liest Cookie

<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

Empfohlenes Lernen: „ PHP-Video-Tutorial"

Das obige ist der detaillierte Inhalt vonSo lösen Sie das verstümmelte Problem von PHP-Cookies. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn