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

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

藏色散人
Libérer: 2023-03-02 18:28:01
original
3168 Les gens l'ont consulté

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)
Copier après la connexion

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);
?>
Copier après la connexion

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);
?>
Copier après la connexion

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>";
?>
Copier après la connexion

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);
?>
Copier après la connexion

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  // 过期时间
);
Copier après la connexion

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’);
Copier après la connexion

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

$.cookie(‘demoCookie’,text,{expires: 7});
Copier après la connexion
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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal