giboo a écrit :
Bonjour à tous,
j'ai un soucis : mes sessions sont perdues avec le navigateur AOL (8.0 ou 9.0).
j'ai beaucoup cherché sans trouver de réponse ouverte.
par contre je suis tombé sur les explications d'AOL himself : http://webmaster.aol.fr/sessions.html...
le problème est le suivant : avec les répartiteurs de charge (load balancers qui équivalent à un proxy changeant l'adresse IP à chaque page) le numéro de session ne peut pas être retrouvé (puisqu'il est construit à partir de l'IP qui change).
la solution : définir soit même l'ID de session sans se servir de l'IP (puisqu'elle change de page en page). Et enregistrer cette ID manuelle dans un cookie.
ma mise en oeuvre : remplacer un simple session_start() par ça :
Code :
if (! isset($_COOKIE['idSession'])) { // // Si cookie d'ID absent -> nouvelle ID de session // $user_ip = rand(0, 9999999) ; $idSession = md5($user_ip. time()) ; } else { // // Sinon récupère l'ID de session dans le cookie // $idSession = $_COOKIE['idSession'] ; } // // démarrage/reprise de la session // // // (re)écriture du cookie d'id session (pour étendre sa durée de vie) // setcookie("maSession", $idSession, (time()+12800), "/", ".monDomaine.com", 0) ;
|
Hé bin ça marche pas ! Pourtant, j'ai regardé et les cookies de session ont bien le même identifiant, même quand mon panier se vide / rerempli au hasard des load balancer....
Alors si quelqu'un à une idée... je suis preneur
Merci d'avance.
Cordialement, Giboo.
|