Class sessions
PHPerreur
-
Soufiane974 Messages postés 14 Statut Membre -
Soufiane974 Messages postés 14 Statut Membre -
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
A voir également:
- Class sessions
- Realtek audio admin background process class ✓ - Forum Windows
- Wrong elf class: elfclass64 - Forum Autres distributions Linux
- Vous ne pouvez pas creer plusieurs sessions instagram - Guide
- Nswrtmon microsoft base class application ✓ - Forum Virus
- Rnwf msm helper class ✓ - Forum Réseaux sociaux