잘못된 PHP 쿠키에 대한 해결 방법: 먼저 쿠키를 작성할 때 URL로 인코딩한 다음 쿠키를 다시 작성하고 마지막으로 읽을 때 URL을 디코딩합니다.
이 기사의 운영 환경: 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('; '); for (var i=0; i < aCookie.length; i++) { var aCrumb = aCookie[i].split('='); if (sName == aCrumb[0]) return decodeURI(aCrumb[1]); } return ''; } </script>
js는 쿠키를 설정합니다. php는 쿠키를 읽습니다
<script type="text/javascript">function setCookie(name, value, time){ var nameString = name + '=' + 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 = ' ;expires = '+ expdate.toGMTString(); } var path = " ;path =/"; document.cookie = nameString + expiryString + path; }setCookie("TestJsCookie", "我是中国人", 0) </script>
Recomm 학습 종료: " PHP 비디오 튜토리얼"
위 내용은 PHP 쿠키의 잘못된 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!