Steve TENZA
Web développeur
Facebook Me contacter Cookie
Télécharger
Noter:
Ajouté/Modifié le 2024-02-17
Visionné 4425 fois

Calculer la taille d'une chaîne PHP pour ne pas dépasser la taille totale du cookie

Description

Les cookies sont couramment utilisés pour stocker de petites quantités de données côté client, cependant, il faut s'assurer que la taille des données stockées dans un cookie ne dépasse pas la limite autorisée par le navigateur, sinon il ne sera pas créé. Dans cet article, je vous présente ma solution pour calculer la taille de la chaîne que l'on va mettre dans le cookie.

Calcul de la taille de la chaîne avec rawurlencode()

Il est important de noter que rawurlencode() n'est utilisé que pour calculer la taille de la chaîne, pas pour encoder la valeur du cookie.

La fonction rawurlencode() en PHP est utilisée pour encoder une chaîne en vue de son inclusion dans une URL, mais également utilisé automatiquement par PHP sur les données qu'il insère dans le cookie, il nous suffit dans ce cas, de l'utiliser pour calculer la taille finale de la chaîne qui sera stockée dans le cookie.

// Calculer la taille de la chaîne à mettre dans le cookie
$nom_du_cookie = 'cookie_de_test';
$contenu_du_cookie = '';

//création dynamique du contenu, pour le test
for($i = 1; $i <= 4096; $i ++){

$contenu_du_cookie .= 'a';

}

echo 'Taille nom : ' . strlen($nom_du_cookie) . '<br>';//14
echo 'Taille contenu : ' . mb_strlen(rawurlencode($contenu_du_cookie)) . '<br>';//4096
echo 'Taille totale : ' . (strlen($nom_du_cookie) + mb_strlen(rawurlencode($contenu_du_cookie)));//4110, le cookie ne sera pas créé (voir la console du navigateur qui affichera une "warning console" : "Le cookie « cookie_de_test » n’est pas valide car sa taille est trop grande. La taille maximale est de 4096 octets.")

setcookie($nom_du_cookie, $contenu_du_cookie);
Dans cet exemple, rawurlencode() est utilisé uniquement pour obtenir la longueur de la valeur du cookie sans affecter la valeur elle-même. La taille totale du cookie résulte de la somme de la taille du nom et de la longueur de la valeur du cookie, tout en respectant la limite typique de 4096 octets imposée par la plupart des navigateurs (certains navigateur internet peuvent autoriser des cookies plus grands mais par mesure de sécurité et une compatibilité multi-navigateurs, se limiter à 4096.

J'utilise mb_strlen() pour calculer le vrai nombre de caractères. strlen() retournerait "2" pour "é", tandis qu'avec mb_strlen(), il retournera 1.


Conclusion

En utilisant la fonction rawurlencode() pour calculer la taille de la chaîne à stocker dans le cookie, vous pouvez assurer la création en évitant le dépassement de la limite autorisée par le navigateur.

J'espère que ce script gratuit vous sera utile dans vos projets.
Si vous souhaitez soutenir mon travail, un simple clic sur le bouton "Donner remercier" ci-dessous ou une note serait grandement apprécié. Merci pour votre générosité !
Votre réussite en ligne commence ici

Vous cherchez à pousser encore plus loin vos idées ou à les concrétiser avec un site internet sur mesure ? Je suis là pour vous aider ! Mon expérience en développement web est à votre disposition.

Que ce soit la création de votre site web pro ou l'apport de fonctionnalités avancées à votre projet, contactez-moi pour en discuter et avoir un devis gratuit personnalisé.

Mon objectif est de vous offrir des solutions sur mesure qui répondent à vos besoins, et votre vision associée à mon expertise donnera vie à votre projet web parfait. Contactez-moi aujourd'hui, je réponds en général en moins d'une heure :

Demander un devis
Réponse rapide !

Vous recherchez un script précis ?

Dites-moi ce dont vous avez besoin, je peux développer le script demandé et vous envoyer un mail dès qu'il est dispo !

🔔 Vous pouvez laisser votre mail pour recevoir les nouveaux scripts. Pas de pub, pas de tracas. Vous êtes libre de le supprimer à tout moment.

Je prends en compte toutes les demandes. Les idées les plus populaires passent en priorité et seront publiées dès qu'elles seront prêtes. 2842 demandes reçues.

Commentaires

Ajouter un commentaire

Commenter
Pseudo/Nom
Email
Message
Captcha
memo1memo2
Commenter
Ajoutez un commentaire, soyez le premier !

Retour à la liste des scripts

Un site à créer ?
Contactez-moi