>  기사  >  백엔드 개발  >  잘못된 PHP 쿠키 문제 해결

잘못된 PHP 쿠키 문제 해결

藏色散人
藏色散人원래의
2020-07-21 10:46:493104검색

잘못된 PHP 쿠키에 대한 해결 방법: 먼저 해당 PHP 코드 파일을 연 다음 PHP에 내장된 "unicode_encode" 함수를 사용하여 잘못된 문제를 해결하기 위해 유니코드 문자열을 원하는 인코딩 방법으로 변환합니다.

잘못된 PHP 쿠키 문제 해결

PHP COOKIE 값을 얻는 방법 및 중국어 왜곡 코드 해결 방법

php에서 쿠키 값을 얻는 방법은 매우 간단합니다. 쿠키 ID 이름이 COOKIE[] 중간에 있으면 간단히 소개하겠습니다. php에서 쿠키를 사용하는 예입니다.

권장: "PHP 튜토리얼"

쿠키에 값 할당

setcookie (name, value, expire, path, domain)

예:

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy(&#39;copy6428&#39;)">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy6428>
<?php
setcookie(“user”, “Alex Porter”, time() 3600);
?>

사용자 값을 얻으려면 어떻게 해야 할까요

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy(&#39;copy6844&#39;)">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy6844>
<?php
echo $_COOKIE["user"];
print_r($_COOKIE);
?>

사용자 쿠키를 설정하지 않으면 실행할 때 오류가 발생하므로 isset 함수를 사용하여 판단할 수 있습니다.

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy(&#39;copy3666&#39;)">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy3666>
<?php
if(isset($_COOKIE["user"]))
echo"Welcome".$_COOKIE["user"]."!<br>";
else
echo"Welcomeguest!<br>";
?>

한자는 항상 깨집니다

예를 들어 "Xiaowei"는 "%u5C0F%u4F1F"로 획득됩니다

이것은 실제로 깨진 코드가 아니라 유니코드 인코딩이라는 내장 함수가 있습니다. 유니코드 문자열을 원하는 인코딩 방법으로 변환할 수 있는 unicode_encode 함수 프로토타입은 다음과 같습니다. string unicode_encode(유니코드 입력, 문자열 인코딩)

다음은 참조용 예입니다.

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy(&#39;copy2845&#39;)">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy2845>
<?php
  header (&#39;Content-Type: text/plain; charset=ISO-8859-2&#39;);
  $encoded = unicode_encode (&#39;\u0150\u0179&#39;, &#39;ISO-8859-2&#39;);
  echo &#39;Unicode semantics: &#39;, ini_get (&#39;unicode_semantics&#39;), PHP_EOL, &#39;The string itself: &#39;;
  printf ($encoded . PHP_EOL, &#39;%s&#39;);
  echo &#39;The length of the string: &#39;, strlen ($encoded);
?>

예제는 js php와 결합되어 있습니다. 페이지 탐색 통계 구현

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy(&#39;copy2948&#39;)">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy2948>
// 浏览页面次数
$visited = (int)$_COOKIE[&#39;pageVisits&#39;] 1;
setcookie( &#39;pageVisits&#39;,  // cookie名
$visited,  // cookie值
time() 7*24*60*60  // 过期时间
);

이 페이지를 실행할 때 서버는 이 페이지를 방문한 횟수를 저장하기 위해 쿠키 값을 작성합니다. 여기에는 PHP의 setcookie 메소드가 적용됩니다.

이 값을 출력하세요:

이제 js를 사용하여 쿠키를 가져오고 설정하는 방법을 살펴보겠습니다.

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy(&#39;copy2304&#39;)">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy2304>
var cookie = $.cookie(‘demoCookie’);
if(cookie) $(‘.jq-text’).text(cookie).show();
$(‘.fields a’).click(function(e){
var text = $(‘#inputBox’).val();
// 设置cookie的值
$.cookie(‘demoCookie’,text,{expires: 7});
$(‘.jq-text’).text(text).slideDown(‘slow’);
e.preventDefault();
});
$(‘#form1′).submit(function(e){ e.preventDefault(); })
var cookie = $.cookie(‘demoCookie’);

데모Cookie라는 키 이름의 값을 가져옵니다(존재하지 않으면 null이 반환됩니다).

$.cookie(‘demoCookie’,text,{expires: 7});

저장 링크를 클릭하면 입력 상자의 값이 쿠키에 기록됩니다.

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

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