[ASP] Perte de variable de session en utilisant des cookies

Perte de variable de session en utilisant des cookies [ASP] - ASP - Programmation

Marsh Posté le 10-03-2005 à 12:15:36    

Bonjour à tous,
 
Voilà, je suis en train d'améliorer un site intranet de ma société.
Tout fonctionnait bien, jusqu'au jour où j'ai ajouté des cookies pour sauvegarder les sélections de certaines pages (le site n'en utilisait pas du tout avant).
 
Bon, les cookies en eux même fonctionnent bien; nickel;
sauf que régulièrement, quand je passe d'une page à une autre (page utilisant des cookies), toutes mes variables de session sont effacées !!!  :pt1cable:  
Si je vire le support des cookies, tout rentre dans l'ordre, je ne perds jamais mes variables de session.  :heink:  
 
En fait, le problème arrive seulement quand je fais des va et vient entre 2 pages utilisant des cookies. Si je reste toujours sur la même page, non seulement mes cookies fonctionnent bien, mais en plus je ne perds JAMAIS mes variables de session.
 
J'ai beaucoup cherché sur Google, trouvé des tas de gens qui avaient aussi des pertes de variable de session (vu que IE 4 et 5 avait un bug la dessus, mais corrigé depuis...), mais beaucoup sans solution, et pour les autres, rien qui ne corresponde ou qui solutionne ce problème. Au pire, je vais voir à trouver un autre moyen de sauvegardé les préférences d'une page, mais ça m'embête quand même pas mal de ne pouvoir utiliser ce système "standard".
 
J'ai essayé des tonnes de trucs, mais rien qui ne solutionne le problème. Au pire j'arrive à limiter un peu le nombre de fois ou le problème se produit, mais c'est pas encore ça.
 
 
Je sèche un peu là...  :cry:  
 
Personne n'aurait une idée lumineuse ???
 
Merci  :jap:  
 
NOTES:  
 
* Le site est donc en ASP, avec du VBscript en language par défaut côté serveur, et du Javascript côté client.  
J'écris les cookies avec Javascript pour sauver la configuration de la page, et je vais lire ces même cookies avec VBScript sur le serveur quand il y a besoin de regénérer la page.
 
* Ah si, autre point important, le problème ne semble pas arriver avec FireFox, uniquement avec IE6 (même si je ne peux pas tout tester avec FireFox, vu que le site n'est pas 100% compatible avec ce dernier... Cet intranet a été écrit sans suivre la moindre recommandation W3C  :sarcastic: , pas un seul DOCTYPE et des syntaxes exotiques...)


Message édité par SpadVIII le 10-03-2005 à 12:17:46
Reply

Marsh Posté le 10-03-2005 à 12:15:36   

Reply

Marsh Posté le 10-03-2005 à 12:38:14    

Déjà, n'écrit pas les cookies en JS, ça pose problème quand à la fois JS et VBS accèdent aux cookies. Utilise les fonctions ASP pour les créer.

Reply

Marsh Posté le 10-03-2005 à 12:47:57    

Arjuna a écrit :

Déjà, n'écrit pas les cookies en JS, ça pose problème quand à la fois JS et VBS accèdent aux cookies. Utilise les fonctions ASP pour les créer.


 
Mouais, ça m'oblige à refaire une requête vers le serveur en rappelant une nouvelle page intermédiare pour sauver les paramètres dans les cookies avec un "Response.Cookie"... Mais bon, si c'est la solution. Je vais essayer pour voir.
 
Merci  :jap:  

Reply

Marsh Posté le 10-03-2005 à 14:22:35    

Je garantis pas que c'est la solution hein ;)
 
J'ai en effet jamais rencontré ton problème. Par contre, mélanger la gestion JS et ASP des cookies m'avait posé d'autres problèmes (cookies disparus, etc.) donc ça peut être une piste.

Reply

Marsh Posté le 10-03-2005 à 16:31:39    

Arjuna a écrit :

Je garantis pas que c'est la solution hein ;)
 
J'ai en effet jamais rencontré ton problème. Par contre, mélanger la gestion JS et ASP des cookies m'avait posé d'autres problèmes (cookies disparus, etc.) donc ça peut être une piste.


 
Bon, j'ai pas encore modifié toutes les pages, parceque ça me demande un peu de remodelage, mais ça à l'air de bien fonctionner avec 2 pages qui posaient problème avant!  :bounce:  
 
Merci beaucoup !!!  :jap:   :jap:   :jap:  
 
2 jours que je suis la dessus à essayer 10000solutions foireuses!!!  :fou:
 
Par contre, ça m'arrange pas trop, s'était hyper pratique de pouvoir créer un cookie directement avec le client, sans avoir à passer par le serveur. Mais bon, en me débrouillant, je ne devrais quasimment pas perdre de fonctionalité.
 
Tout ça à cause d'IE au final, puisque ça avait l'air de passer correctement avec Firefox...  :(   Enfin, pour d'autres trucs, c'est le contraire...  Vive la standardisation...  :whistle:  
 
 

Reply

Marsh Posté le 10-03-2005 à 17:34:24    

Rectification:
 
ça marche dans 90% des cas. Mais j'ai toujours le problème entre le passage d'une page précise à une autre. Sinon, ça ne me le refait plus dans toutes les autres.  :heink:
 
Donc, y'a encore un petit quelque chose qui chagrine IE, mais quoi ?  :??:  
 
Enfin, le site est utilisable comme ça, les allez retours entre les 2 pages qui posent encore problème étant plutôt rare. Donc, ça ira...
 
Mais je suis preneur de toute autre solution qui pourrait régler le problème à 100%  :D


Message édité par SpadVIII le 10-03-2005 à 17:34:52
Reply

Marsh Posté le 10-03-2005 à 19:51:44    

Bah... Au cas où :
- Vérifie que t'as pas un "Session.Abandon", on sait jamais :D
- Vérifie que t'as pas un truc style : "http://www.toto.com" et "http://251.59.158.103", parceque ça ne shoote pas les variables de session, mais elles sont inutilisables d'un nom de domaine à l'autre, même s'il s'agit du même site (ça fait pareil avec les cookies normalement, c'est la norme W3C qui impose cette mesure de sécurité)
 
Sinon, tu peux essayer de faire un "server.transfert" plutôt qu'un lien ou un redirect. Ca a l'avantage de recopier tout l'environnement ASP (variables comprises). Ca pourrait résoudre ton problème, par contre, c'est légèrement lourd pour le serveur !

Reply

Marsh Posté le 11-03-2005 à 09:44:00    

Arjuna a écrit :

Bah... Au cas où :
- Vérifie que t'as pas un "Session.Abandon", on sait jamais :D
- Vérifie que t'as pas un truc style : "http://www.toto.com" et "http://251.59.158.103", parceque ça ne shoote pas les variables de session, mais elles sont inutilisables d'un nom de domaine à l'autre, même s'il s'agit du même site (ça fait pareil avec les cookies normalement, c'est la norme W3C qui impose cette mesure de sécurité)
 
Sinon, tu peux essayer de faire un "server.transfert" plutôt qu'un lien ou un redirect. Ca a l'avantage de recopier tout l'environnement ASP (variables comprises). Ca pourrait résoudre ton problème, par contre, c'est légèrement lourd pour le serveur !


 
Y'a un seul Session.Abandon, et pas à un endroit ou cela peut être génant...
 
Pour le reste, idem, y'a pas de soucis.
Bon, je vais voir si je peux faire un Serveur.transfert... Merci encore!  ;)
 
[HS] T'aurais pas essayé de copier ma configue Athlon par hasard !  :D


Message édité par SpadVIII le 11-03-2005 à 09:46:35
Reply

Marsh Posté le 11-03-2005 à 10:35:03    

[HS] Arf, en effet :lol: Par contre, moi j'ai pas de problème de reboot ou chais pas quoi :D (mais j'en ai eu quelques autres, genre des perfs catastrophiques)


Message édité par Arjuna le 11-03-2005 à 10:35:40
Reply

Marsh Posté le 11-03-2005 à 13:42:57    

Voilà, j'ai trouvé le dernier problème !!!  :bounce:  
 
Bon, en fait, entre mes 2 pages, à chaque fois que l'utilisateur faisait une requête via ces pages, je sauvegardais tous les attributs de la page (valeur de champs, de combo box etc) dans des cookies (environ 15). Environ le même nombre de cookies poru chaque page.
 
Si je faisais plusieurs requête sur la 1ère page, pas de soucis (cookies bien sauvegardés, session préservée). Si j'allais ensuite directement sur la 2ème page, je ne pouvais refaire une requête: la suvegarde de tous les cookies me virait mes variables de session.
 
SOLUTION: Je ne sauve maintenant que les attributs de la page qui ont changé (vu que l'utilisateur n'utilise jamais tous les attributs à chaque fois!!!). Ce qui fait que je ne sauve qu'un ou deux cookie par page à chaque fois dans la majorité des cas.
 
Maintenant, je peux aller d'une page à l'autre, faire des requêtes, autant de fois que je veux, je ne perds plus jamais mes variables de session.
 
Le truc de fou...  :ouch:   J'aurai encore sauvé 1000 cookies d'un coup, je veux bien qu'il y ai un problème de dépassement de limite. Mais là... Le pire c'est que ça marchait quand même en restant dans la même page, donc en sauvant à chaque fois 15 cookies d'un coup. :heink:  
 
Bref, encore merci IE ! (moi qui en était plutôt content jusqu'à maintenant... saloperie !!!  :fou: )
 
Enfin, surtout, un grand merci à toi Arjuna, tu m'as donné une bonne piste qui m'a permis d'en trouver une autre.  :jap:   :jap:   :jap:  
 
3 jours que je suis la dessus, y'en avait marre!!!  
 


Message édité par SpadVIII le 11-03-2005 à 13:44:39
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed