Gestion avancée de Cookies en PHP

Mammouth du PHP | 19672 Messages

27 juin 2007, 10:13

Bonjour,
je me heurte à un problème lors de l'écriture d'un cookie en PHP.

Dans un cookie respectant la RFC 2965, il y a des propriétés indispensables, d'autres facultatives.
Habituellement, on se contente d'un nom pour le cookie, d'une valeur, éventuellement d'une date d'expiration si on crée un cookie persistant, accessoirement on précise un "Path" ainsi qu'un "Domain" et enfin si nécessaire, on précise si le cookie requiert une connexion SSL.

Jusque là tout va bien. Néanmoins, il existe entre outre deux autres propriétés :
- Comment : Commentaire destiné à l'internaute qui éditerait le cookie lui donnant des informations sur l'utilisation qui est faite des informations stockées dans ce cookie;
- CommentUrl : Url d'une page sur la politique de confidentialité de l'éditeur du site en matière de données personnelles et sur l'utilisation des cookies.

J'ai eu un problème à un moment donné avec une version "standalone" de IE6 qui refusait les cookies a cause de l'absence de ces propriétés, même si je configurais pour qu'il accepte ces cookies quand même.

La problématique est la suivante : si j'arrive parfaitement à ajouter ces propriétés et leurs valeurs en JavaScript, en PHP, c'est une autre paire de manche et je ne trouve nulle part d'information m'indiquant si seulement on peut le faire. La doc est du reste assez spartiate sur le sujet.

Est-ce que quelqu'un aurait une piste d'informations ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

27 juin 2007, 14:22

Bonjour,

Voila je pense un début de réponse :
http://fr.php.net/http_build_cookie
http://fr.php.net/http_parse_cookie
J'ai eu un problème à un moment donné avec une version "standalone" de IE6 qui refusait les cookies a cause de l'absence de ces propriétés
ça me semble très louche car je n'ai jamais utilisé ces propriétés et je n'ai jamais rencontré de problème avec IE6.
Peut être un bug d'IE6 corrigé depuis...
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 19672 Messages

27 juin 2007, 15:52

Merci beaucoup @rthur, je vais suivre cette piste, c'est effectivement probablement le seul chemin vers une solution. Je reviendrai avec une suite si j'arrive à faire ce que je veux avec ça :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 505 Messages

27 juin 2007, 16:02

suivant le niveau de securité, IE6 peut refuser les cookies si il n'y a pas de politique P3P de définie.

Tu peux en mettre une générique dans la section head de ta page

qq chose du genre
header('P3P: CP="NON DSP COR CURa PSAa OUR STP NAV"');

Mammouth du PHP | 19672 Messages

27 juin 2007, 16:12

Alors attention : j'utilise comme mentionné plus haut une version standalone de IE6. La version normalement installée est bien IE7, mais j'utilise un soft qui m'ajoute les versions précédentes, c'est extrêmement utile pour valider l'affichage pour un site à fort trafic en cours de montage, d'autant qu'il est difficile d'ignorer IE6 qui est encore très présent sur Internet.

À ce propos d'ailleurs, si quelqu'un a vent de statistiques récentes sur les différents navigateurs (et dans quelle version) utilisés actuellement, ça m'intéresserait d'avoir un lien.

Cyrano
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 juin 2007, 16:19

En ce qui concerne la popularité de IE7, je pense que depuis qu'il est inclus dans les mises à jour automatiques, il a du pas mal augmenter dans les pourcentages. :-k

Le seul graphique que j'ai trouvé date de novembre 2006 mais illuste bien mes propos.
http://www.benjaminfabre.com/2006/11/27 ... xplorer-7/

Sinon, en ce qui concerne la version standalone de IE6, j'ai la même et je sais qu'il gère très très mal les cookies.

Je ne sais pas si cette solution va te convenir, mais nous avons installé un PC avec un serveur VNC et on se connecte sur ce PC pour tester sous IE6 :lol:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 505 Messages

27 juin 2007, 17:12

J'avais bien lu que c'était une version standalone.
La plupart sont dispo ici pour ceux que cela interresserait

Mais standalone ou pas, je pense que ma remarque reste valable.

Mammouth du PHP | 19672 Messages

27 juin 2007, 17:25

Bon, malheureusement, après avoir un peu exploré les fonctions suggérées, ça marche pas. Il faudrait que j'installe une extension PECL_HTTP, sous Windows, c'est pas gagné, et le temps que je comprenne comment ça marche, j'aurai contourné le problème.

Tant pis, merci quand même.

@+
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: