Maison  >  Article  >  développement back-end  >  Résoudre le problème du cookie php tronqué

Résoudre le problème du cookie php tronqué

藏色散人
藏色散人original
2020-07-21 10:46:493104parcourir

Solution au cookie php tronqué : ouvrez d'abord le fichier de code PHP correspondant ; puis utilisez la fonction intégrée "unicode_encode" en php pour convertir une chaîne Unicode dans la méthode d'encodage souhaitée afin de résoudre le problème tronqué.

Résoudre le problème du cookie php tronqué

PHP Comment obtenir la valeur du COOKIE et la solution de code chinois tronqué

Obtenir la valeur du cookie en php est très simple car tant que COOKIE[ ] Au milieu se trouve le nom de l'identifiant du cookie, qui peut être obtenu. Laissez-moi vous présenter brièvement un exemple d'utilisation des cookies en PHP.

Recommandation : "Tutoriel PHP"

Attribuer une valeur au cookie

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

Par exemple :

<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);
?>

Et si nous voulons obtenir la valeur utilisateur Operation

<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);
?>

Si nous ne définissons pas le cookie utilisateur, nous ferons une erreur lors de l'exécution, nous pouvons donc utiliser la fonction isset pour juger.

<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>";
?>

Les caractères chinois sont toujours tronqués

Par exemple, après avoir obtenu "Xiaowei", c'est "%u5C0F%u4F1F"

C'est en fait, ce n'est pas du code tronqué, mais pour l'encodage Unicode, il existe une fonction intégrée appelée unicode_encode en PHP qui peut convertir une chaîne Unicode en la méthode d'encodage souhaitée. Le prototype de la fonction est : string unicode_encode (entrée Unicode, encodage de chaîne)

En voici un. Vous pouvez vous référer à l'exemple :

<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);
?>

L'exemple combine js php pour implémenter des statistiques de navigation sur la page

<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  // 过期时间
);

Lors de l'exécution de cette page, le serveur écrira une valeur de cookie pour enregistrer le nombre de fois que vous visitez la page. La méthode setcookie de php est appliquée ici.

Sortez cette valeur :

Voyons maintenant comment utiliser js pour obtenir et définir des cookies

<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’);

Obtenir la valeur du nom de clé demoCookie (null est renvoyé si c'est le cas n'existe pas).

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

Lorsque vous cliquez sur le lien de sauvegarde, la valeur de la zone de saisie est écrite dans le cookie.

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!

Déclaration:
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