Boutique en ligne

Résolu
Foxhive Messages postés 15 Date d'inscription lundi 24 octobre 2005 Statut Membre Dernière intervention 27 novembre 2008 - 8 avril 2007 à 21:16
Foxhive Messages postés 15 Date d'inscription lundi 24 octobre 2005 Statut Membre Dernière intervention 27 novembre 2008 - 8 avril 2007 à 23:25
Bonjour à tous,

Je voudrais creer une boutique en ligne et j'ai regardé cette classe : http://www.phpcs.com/codes/CLASSE-PHP5-PANIER-TOUTE-SIMPLE_34003.aspx

Je la comprend niquel mais seulement quand je creer mon objet que j'utilise les methodes de la classe sur une page, en admettant que je change de page produit ben là je dois obligatoirement creer un nouvelle objet il n'est pas sauvegardé ...

Je ne vois pas comment l'auteur a utilisé les sessions dans sa classe car je les vois inefficace là...

Merci de votre aide.

5 réponses

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
8 avril 2007 à 22:24
Jviens de relire ca classe.
En faite, la gestion session/objet est géré par le constructeur de la classe.

Juste en instanciant la classe de page en page, tu récupères automatiquement le contenu de ton panier.

Donc en faite, faut juste faire un $Object = new Panier();
et ca se fait tout seul.

C'est moi qui est mal vu :)
Mais c'est pas comme ca que je l'aurais codé, c'est pour ca que normalement il faut utiliser la sérialisation.

Mais dans ce cas ci, c'est inutile :)
3
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
8 avril 2007 à 21:31
Un objet, c'est une variable...
Pardon, je me suis trompé.

Un objet (ou une instance de classe, comme tu veux) est stocké dans une variable.
Comme tu le sais sans doute déja, les variables ne se transmettent pas de pages en pages. Il faut utiliser les sessions pour pouvoir le faire.
L'objet, c'est pareil. Il faut envoyer ton objet en session. On appèle cela la sérialisation/desérialisation.

Tu vas pouvoir en apprendre plus ici :
http://fr3.php.net/manual/fr/function.serialize.php
http://fr3.php.net/manual/fr/function.unserialize.php

http://fr3.php.net/manual/fr/language.oop.serialization.php (PHP4)
http://fr3.php.net/manual/fr/language.oop5.magic.php (PHP5)

Voila voila :)
0
Foxhive Messages postés 15 Date d'inscription lundi 24 octobre 2005 Statut Membre Dernière intervention 27 novembre 2008
8 avril 2007 à 21:56
Merci de ton aide donc en fait je dois faire ça :

le visiteur arrive et ajoute un premiere article à son panier : je creer un objet j'envois mes requete sur l'ajout du produit de la page et à la fin je recupere la variable "private $panier" et je la stocke dans une session...

Ca me donne ça comme page :

$MyObject = new Panier();
$MyObject = additem......

$_SESSION['cart'] = $MyObject->panier;

(J'utilise toujours la classe situé ici http://www.phpcs.com/codes/CLASSE-PHP5-PANIER-TOUTE-SIMPLE_34003.aspx)

Donc j'arrive sur une autre page produit, je creer un autre objet mais cette fois le constructeur va reperer que $_SESSION['cart'] existe et va transferer son contenu deja existant dans private $panier et apres je travaillerais avec mes autres produits...

C'est ça j'ai bien compris ou pas ?

Merci d'avance :)
0
Foxhive Messages postés 15 Date d'inscription lundi 24 octobre 2005 Statut Membre Dernière intervention 27 novembre 2008
8 avril 2007 à 22:58
Ben là sur chaque page quand je creer un nouvel object je recupere pas le contenu de l'objet creer sur la page d'avant... En meme temps c'est logique mais ça fonctionne pas avec cette technique !
0

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

Posez votre question
Foxhive Messages postés 15 Date d'inscription lundi 24 octobre 2005 Statut Membre Dernière intervention 27 novembre 2008
8 avril 2007 à 23:25
J'ai rien dit en fait cela marche très bien merci de ton aide Fhx :)
0
Rejoignez-nous