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

  FORUM HardWare.fr
  Programmation
  PHP

  Problème récupération de cookie [edité mais non résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème récupération de cookie [edité mais non résolu]

n°2120368
Ch0bits
Posté le 10-01-2012 à 09:34:55  profilanswer
 

Bonjour,
 
Voilà je suis en train de faire un site de vente en ligne, je suis en train de mettre en place le panier, pour ça j'utilise un cookie.
Chaque produit est représenté par un formulaire, quand on clique sur "ajouter un panier" ça envoie les valeurs de mon formulaire à un script contenu dans mon sous-dossier /scripts/ à la racine.
Ce script se charge de mettre en place le cookie/le récupérer s'il existe (sans problème) et d'ajouter le nouveau produit au panier etc. bref jusque là aucun problème.
 
Mon problème apparaît lorsque je veux par exemple, sur la page d'accueil de mon site (qui se trouve au-dessus de mon script dans l'arborescence) récupérer ce cookie, en effet impossible de le récupérer, un isset ne le trouve même pas, alors que mon cookie existe bel et bien !

 
Je créer le cookie avec un script se situant à la racine maintenant, donc je n'ai plus ce problème.
Par contre j'en ai un autre, en fait ce que je mets dans le cookie est le panier du visiteur (que je serialize) comme ceci :
 

Code :
  1. // Créer et ajouter l'objet dans le panier
  2. //
  3. $panier_objet = new Panier_Objet($_POST['reference'], $_POST['quantite']);
  4. $panier->add($panier_objet);
  5. // Créer/modifier le cookie, durée de 7 jours
  6. //
  7. setcookie('panier', serialize($panier), time() + 7*24*3600, null, null, false, true);


 
Ce panier (instance de la classe panier) contient une "liste d'objets" (attribut) qui est un array d'instances de panier_objet (une autre classe).
 
Pour récupérer mon panier je fais :
 

Code :
  1. require_once("classes/Panier.php" );
  2. if (isset($_COOKIE['panier']))
  3. {
  4. $panier = unserialize($_COOKIE['panier']);
  5. $quantite = $panier->quantite();
  6. echo'<p>Nombre d\'articles : '. $quantite .'</p>';
  7. }


 
quantite() additionne la valeur de l'attribut quantite de chaque instance de ma classe panier_objet contenues dans ma "liste d'objets" de mon panier.
 
 
Maintenant ça m'affiche l'erreur suivante :
Fatal error: Panier::quantite() [panier.quantite]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "Panier_Objet" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in C:\wamp\www\mon_projet\classes\Panier.php on line 121
 
Détail de la méthode quantité (pour montrer où se situe la ligne 121 de ma classe Panier) :
 

Code :
  1. public function quantite()
  2. {
  3.  // Initialiser la variable de comptage
  4.  //
  5.  $quantite = 0;
  6.  // Obtenir la liste des objets du panier
  7.  //
  8.  $liste = $this->getListePanierObjets();
  9.  // Parcourir la liste et y ajouter les quantités
  10.  //
  11.  if ($liste != '')
  12.  {
  13.   foreach ($liste as $objet)
  14.    $quantite += $objet->getQuantite(); // ici c'est la ligne 121
  15.  }
  16.  return $quantite;
  17. }


 
Need help :p
 
Merci d'avance
 
EDIT : en fait j'ai l'impression que serialize a été effectué de façon récursive mais pas le unserialize :o
 
EDIT2 : en fait je pourrais résumer mon problème à "comment sérializer une instance d'une classe qui contient un array d'instances d'une autre classe ?".
 
EDIT3 : OK, j'suis revenu de ma pause, j'ai rallumé le pc (je travail en local), maintenant ça marche, ne me demandez pas pourquoi...
 
Bon, bah problème résolu, si jamais je comprends ce qu'il s'est passé j'éditerais.


Message édité par Ch0bits le 10-01-2012 à 15:00:05
mood
Publicité
Posté le 10-01-2012 à 09:34:55  profilanswer
 

n°2120653
Pc_eXPert
Posté le 11-01-2012 à 00:47:18  profilanswer
 

L'erreur te dit que tu n'as pas déclaré/importé la classe avant de l'utiliser. C'est étonnant que ça se soit réglé tout seul !


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

  Problème récupération de cookie [edité mais non résolu]

 

Sujets relatifs
Problème avec file_put_contents[C] problème de fichiers
probleme image en sortit de codeProblème boucle while
Problème avec Type défini par l'utilisateur...[Resolu] probleme en C : comparaison de chaine de caractere
Problème avec file_existsProblème de lecture d'un fichier avec fread
Problème de margin sur mon site[résolu]Problème déploiement et routage heroku.
Plus de sujets relatifs à : Problème récupération de cookie [edité mais non résolu]


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