Ecriture de cookie sous ie7

Résolu
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 - 1 févr. 2008 à 11:17
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 - 4 févr. 2008 à 16:12
Bonjour,

J'ai un petit problème d'écriture de cookie avec IE7, lorsque je j'essaye d'écrire dans un cookie quelquonque la chaine suivante :

01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,21,22,23,24,25,26,27,28,
29,2A,2B,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53
,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,
81,82,83,84,85,86,87,88,89,90,91,92,93,94,95%

qui représente des numéros de département, document.cookie devient null à partir du 30 eme département, pourtant il ne semble pas que la chaîne soit trop longue j'ai testé avec une chaine de 1400 caractères sans virgules et la tout ce passe bien, j'ai l'impression que sa viendrai de l'encodage de la chaine par la fonction escape avant l'écriture du cookie mais je n'en suis pas certain.

Je ne comprends pas pourquoi IE7 n'arrive pas à écrire cette chaine alors que FireFox lui le fait sans souci.

Quelque chose cloche mais je ne vois pas du tout où, si vous avez une idée je suis tout ouïe !

34 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
1 févr. 2008 à 16:18
et probablement déjà les ;
<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
0
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
1 févr. 2008 à 16:23
Je ne crois pas j'ia essayé avec ton code j'ai eu la meme erreur, sa viens pas des ';' j'ai fait attention sa ne viens pas de la
0
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
1 févr. 2008 à 16:26
La fonction n'écrit le ';' qu'a la fin du cookie donc à priori pour moi sa bloque pas mais si chez toi si qu'as tu eu comme erreur?
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
1 févr. 2008 à 16:33
pas d'erreurs, le contenu s'arrête au 1er ;
peut-être IE ne veut-il pas de ; dans les données d'un cookie....
<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
1 févr. 2008 à 16:35
avec mon exemple, certes, mais s'il existe déjà un cookie avec ; ?
avant de chercher autre chose, fais déjà ça...
<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
0
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
1 févr. 2008 à 16:40
Ahhh d'accord ! Tu veus dire que tu as écrit des ';' dans un cookie et qu'il c'est arrêté au premier? A priori on n'a pas le droit puisque c'est le caractère qui les sépare non?
0
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
1 févr. 2008 à 16:45
A priori non on ne devrai trouver de cookie avec des ';' dans la valeur qu'ils contiennent car ce caractère permet de séparer les différents cookies enregistrer si j'ai bien compri comment sa marche et je devrai avoir respecté cette règle avec la fonction que j'utilise pour les écrire, a valeur ne contient pas de ';' et ceux que l'on peu y voir sépare bien ems différents cookies d'ailleur je n'ai jamais eu de souci avant maintenant avec ces fonctions.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
1 févr. 2008 à 16:50
ben.. c'est toi qui en a ? ou je n'ai pas compris ?
        se_activ_onglet_0=1; se_activ_onglet_1=0; selected_expert=null; s...
et 2ème chose, tu es sur du ";expires=???"
    tu sembles l'initialiser à null
    et dans ce cas, il va se détruire dès qu'on quitte la page
    ( avec IE,  avec FF je ne sais pas )
<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
0
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
1 févr. 2008 à 17:01
Alors :
se_activ_onglet_0=1;
C'est un cookie que j'ai écrit comme sa : writeCookie('se_activ_onglet_0',1); C'est donc un cookie à par entière et le ';' le sépare du cookie suivant (se_activ_onglet_1) qui à été écrit de la même manière tout comme le cookie selected_expert.

Je n'ai pas écrit un seul gros cookie mais bien plusieurs les un après les autres avec la fonction writeCookie.

Sinon oui ces cookies n'ont pour durée de vie que la page ou ils sont créés, il me servent à stocker les informations d'un gros formulaire pour pouvoir les réafficher en cas de rafraichissement de la page par l'utilisateur mais, aussi pour pouvoir réafficher les données enregistrées en base de données, chargées grace à une requete en ajax qui va les chercher puis les écrit dans les cookie, tout se réaffiche automatiquement car ces cookies sont luts a chaque fois que l'on affiche un élément de ce formulaire.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
2 févr. 2008 à 07:36
>>Je n'ai pas écrit un seul gros cookie mais bien plusieurs
    pas possible. il n'y en a qu'un seul.
   
>>pour pouvoir les réafficher en cas de rafraichissement de la page
    le cookie sera détruit si pas de date d'expiration dès qu'on
       quitte la page. lors d'un rafraîchissement on ne devrait
       pas le retrouver donc.

<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
0
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
3 févr. 2008 à 17:36
 pas possible. il n'y en a qu'un seul.
-> Oui et j'ai écrit mes cookies dedants regardes ce que fait la fonction
lors d'un rafraîchissement on ne devrait pas le retrouver donc.
-> si ^^ essayes ma fonction tu vera comment elle marche
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
4 févr. 2008 à 07:28
vire les ; sauf celui devant expires=                  sinon c'est la fin du contenu
et met une valeur correcte dans expires.           sinon cookie détruit ( au moins sur la toile, en local
                                                                            ça marche peut-être.... )
après ça devrait baigner.
<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
0
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
4 févr. 2008 à 12:02
Tout s'éclaire !!
Bon cela ne venait ni de la fonction ni de l'écriture de ce cookie !!!
Et c'est telement logique que je m'en veus de ne pas l'avoir vu plus tôt !!

Pourquoi cela marchait sous firefox et pas sous ie ? En fait c'est extrèmement simple !
Un des autres cookie que j'écrivait dans document.cookie contenait un caractère incorrect selon ie !!! Sous firefox pas d'erreur car ce caractère ne posais apparement pas de souci et du coup le cookie s'écrivait mal à cause de sa et effacait tout le contenu de document.cookie ^_^

Après tentative d'écriture manuelle du cookie voila l'erreur retournée par ie :
SyntaxError::Caractère incorrect

Et voila le fameux cookie qui m'a rendu fou :
11#Caisse 11-15#Caisse 15-17#Caisse 17-22#Caisse 22%4#Caisse
4-2#Caisse 2-4 #Caisse 4-21#Caisse 21,22#Caisse 22%6#Caisse 6,9#Caisse
9-23#Caisse 23-3#Caisse 3-17#Caisse 17,19#Caisse 19,23#Caisse 23%19#Caisse
19,22#Caisse 22-13#Caisse 13-20#Caisse 20,24#Caisse 24-5#Caisse 5,19#Caisse
19,24#Caisse 24%25#INPCA,26#UNPMF-13#Caisse 13,22#Caisse 22-10#Caisse
10,13#Caisse 13-6#Caisse 6,12 #Caisse 12,22#Caisse 22

Je vais rechercher quel caractère pose problème illico !
0
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
4 févr. 2008 à 16:12
Petite info concernant la gestion des cookies par IE :

http://support.microsoft.com/kb/941495/fr

La propriété document.cookie peut récupérer uniquement 4 096
octets d'un cookie sur un ordinateur client. Si la chaîne de cookie est
supérieure à 4 096 octets, la propriété renvoie une chaîne vide.

(Probalement la source de mon erreur ^^)
0
Rejoignez-nous