Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1749 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Cookies et sessions en même temps

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Cookies et sessions en même temps

n°1382204
naglafar
Posté le 06-06-2006 à 16:29:04  profilanswer
 

Bonjour,
Voilà un problème sur lequel je me tire les cheveux depuis plusieurs jours. J'explique :
 
Mon site est un site de vente en ligne. Le panier de commande est actuellement géré par des sessions. Le problème, c'est que les utilisateurs d'aol n'arrive pas à créer des sessions sur mon site, et ce depuis que je suis passé sur ovh (avant ça semblait fonctionner correctement). Je suis en contact avec ovh mais j'ai peur qu'ils ne puissent rien pour moi.
 
J'ai donc décidé de passer par des cookies. Et là, deuxième problème : Sous Mozilla ça fonctionne très bien mais sous IE et AOL explorer, des informations sont perdues. Le problème semble être que alors que mozilla sépare bien chaque cookie créé (un cookie par donnée), IE semble tout mettre dans une liste de cookies, dont le nombre est limité à 11. Or pour chaque produit, je crées 5 cookies + 4 pour les infos de l'utilisateur et on arrive vite à la limite (dès qu'on achète + de 2 produits).
 
Sachant que les utilisateurs AOL sont en minorité et que la majorité des client achètent un seul produit, je me suis dis que ce problème de cookie n'en serait pas vraiment un si il n'y a que les clients AOL qui l'utilise. J'ai donc décidé de combiner les deux :
 
Ecriture des cookies/sessions :

Code :
  1. function enr_tab_cookie_session( $nom , $contenu )
  2.   {
  3.     $_SESSION[$nom] = $contenu;
  4.     if( !empty( $contenu ) )
  5.       foreach( $contenu as $name => $value ) {
  6.         setcookie( $nom.'cookie['.$name.']', $value, time()+60*20, '/' );
  7.       }   
  8.   }


 
Lecture des cookies/sessions :

Code :
  1. function lecture_tab_cookie_session( $nom ) {
  2.     if (isset($_SESSION[$nom])) {
  3.       foreach( $_SESSION[$nom] as $name => $value )
  4.         $res[$name] = $value;
  5.       return $res;
  6.       }
  7.     else
  8.       if( isset( $_COOKIE[$nom.'cookie'] ) )
  9.         {
  10.           foreach( $_COOKIE[$nom.'cookie'] as $name => $value )
  11.           {
  12.             $res[$name] = $value;
  13.           }
  14.         }
  15.     return $res; 
  16.   }


 
On enregistre les données à la fois dans un cookie et une session, et quand on lit les données, si la session existe (c'est à dire, si le client gère les sessions), on donne en résultat les infos de session et dans le cas opposé, les infos du cookie.
 
Malheureusement, ça ne fonctionne toujours pas et je ne vois pas du tout pourquoi. Il semblerait qu'il n'est pas du tout évident de gérer à la fois cookies et sessions, j'ai l'impression que quand je lis les données, le tableau qui me revient en résultat est toujours le cookie et jamais les infos contenues dans la session.
 
Si vous avez une idée ça me serait d'une grande aide  :hello:

mood
Publicité
Posté le 06-06-2006 à 16:29:04  profilanswer
 

n°1382263
naglafar
Posté le 06-06-2006 à 17:20:01  profilanswer
 

Fausse alerte, j'ai testé ces 2 fonctions à part et elles fonctionnent. L'erreur vient sûrement d'ailleurs dans le code. Ce qui ne m'arrange pas vraiment car je ne sais pas d'où...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Cookies et sessions en même temps

 

Sujets relatifs
[MySQL Query Browser] Que signifie les deux temps d'exécution?Le topic où les cookies ont un gout de sockette... ah ah ah
envoyer des variables à deux scripts en meme tempsapprendre plusieur langage en même temps
le formulaire ne se submit apparemment pas tout le temps ?!redemarage du son en meme temps que l'animation
Afficher pendant un certain temps un popup menuComment installer la date en temps réel dans un textbox ?
[vbs] mettre la msgbox au premier plan tout le temps[pigé]sessions php
Plus de sujets relatifs à : Cookies et sessions en même temps


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR