Class sessions
PHPerreur
-
Soufiane974 Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Soufiane974 Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà des heures que je me casse la tête à vouloir créer un panier virtuelle pour un e-commerce.
J'ai une class "Panier" et une autre "Produit".
Un appel AJAX envoie une liste d'objet afin de les mettre dans le panier.
Seulement, le panier que je stock dans la variable $_SESSION n'est pas un array comme souhaité mais un "objet incomplet"... ce qui m'empêche d'y ajouter un produit.
Toute aide sera la bienvenue, merci !
Page qui traite la requête AJAX reçue:
Jusqu'ici, aucune erreur, la variable $product est exactement comme attendue.
Le fichier classes.php :
Erreur PHP :
Warning: array_push() First argument should be an array in [...] on line 16
Voilà des heures que je me casse la tête à vouloir créer un panier virtuelle pour un e-commerce.
J'ai une class "Panier" et une autre "Produit".
Un appel AJAX envoie une liste d'objet afin de les mettre dans le panier.
Seulement, le panier que je stock dans la variable $_SESSION n'est pas un array comme souhaité mais un "objet incomplet"... ce qui m'empêche d'y ajouter un produit.
Toute aide sera la bienvenue, merci !
Page qui traite la requête AJAX reçue:
<?php require 'classes.php'; $panier=new Panier(); if(isset($_POST['panier'])){ foreach ($_POST['panier'] as $cmd){ $product=new Product($cmd[name], $cmd[quantity], $cmd[cat], $cmd[heb], $cmd[meal]); $panier->add($product); } } else{ echo "Failed"; } ?>
Jusqu'ici, aucune erreur, la variable $product est exactement comme attendue.
Le fichier classes.php :
<?php class Panier{ public function __construct(){ if(!isset($_SESSION)){ session_start(); } if(!isset($_SESSION['panier'])){ $_SESSION['locked']=false; $_SESSION['panier']=array(); //ICI, le panier devrait être un array ! var_dump($_SESSION['panier']);// Me renvoie : object(Panier)#1 (0) {} } } public function add($product){ if (!$this->isLocked()) { array_push($_SESSION['panier'],'a');// Erreur :First argument should be an array in .... //array_push($_SESSION['panier'],$product); } else{echo "Un problème est survenu veuillez contacter l'administrateur du site.";} } private function isLocked(){ if(!isset($_SESSION['panier'])){ return true; } else{ if ($_SESSION['locked']){ return true; } else{ return false; } } } } class Product{ private $name; private $quantity; private $category; private $logement; private $meal; public function __construct($name=NULL, $quantity=NULL, $category=NULL, $logement=NULL, $meal=NULL){ if($name!=NULL && $quantity!=NULL && $category!=NULL && $logement!=NULL && $meal!=NULL){ $this->name=$name; $this->quantity=$quantity; $this->category=$category; $this->logement=$logement; $this->meal=$meal; } else{ echo 'Veuillez contacter l\'administrateur du site'; } } }
Erreur PHP :
Warning: array_push() First argument should be an array in [...] on line 16