>  기사  >  백엔드 개발  >  PHP 쿠키의 잘못된 문제를 해결하는 방법

PHP 쿠키의 잘못된 문제를 해결하는 방법

藏色散人
藏色散人원래의
2021-03-17 09:44:362290검색

잘못된 PHP 쿠키에 대한 해결 방법: 먼저 쿠키를 작성할 때 URL로 인코딩한 다음 쿠키를 다시 작성하고 마지막으로 읽을 때 URL을 디코딩합니다.

PHP 쿠키의 잘못된 문제를 해결하는 방법

이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

PHP와 js가 서로 쿠키를 전송할 때 중국어 문자가 깨지는 문제

js는 쿠키를 저장하고, php는 그것들을 잘못된 문자로 읽습니다.

문제 분석:

이것은 텍스트 인코딩으로 인해 발생합니다. 한자는 인코딩이 두 가지이므로 이렇게 왜곡된 코드가 생성됩니다!

해결책 아이디어:

1: 쿠키를 작성할 때 먼저 Url로 인코딩한 다음 작성합니다.

2: 읽을 때 Url을 디코딩합니다.

php 두 가지 기능

urlencode()

urldecode()

js 두 가지 함수

decodeURI()

encodeURI()

php는 쿠키를 설정하고, js는 쿠키를 읽습니다.

<?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는 쿠키를 설정합니다. 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

Recomm 학습 종료: " PHP 비디오 튜토리얼"

위 내용은 PHP 쿠키의 잘못된 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.