N'étant pas un expert en PHP(voir pas du tout), je dois créer un site e-commerce, je vous avoue bcp m'aider de toutes les ressources que je trouve sur internet.
Cependant j'ai une erreur toute moche qui apparait lors d'un "delete" d'un article dans mon panier.
Je pense comprendre l'erreur mais je n'arrive pas à la modifier à la source...
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 41943040 bytes) in /Applications/XAMPP/xamppfiles/htdocs/SiteE-commerce2/includes/fonction_panier.php on line 121
c'est à cet endroit qu'il me dit de me reporter :
Code : Tout sélectionner
array_push($_SESSION['panier']['libelleProduit'],$_SESSION['panier']['libelleProduit'][$i]);
array_push($_SESSION['panier']['qteProduit'],$_SESSION['panier']['qteProduit'][$i]);
array_push($_SESSION['panier']['prixProduit'],$_SESSION['panier']['prixProduit'][$i]); Code : Tout sélectionner
<?php
function creationPanier(){
try
{
$db = new PDO('mysql:host=localhost;dbname=site2e-commerce', 'root', '');
$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(Exception $e){
echo'Une érreur est survenue.';
die();
}
if(!isset($_SESSION['panier'])){
$_SESSION['panier']=array();
$_SESSION['panier']['libelleProduit']=array();
$_SESSION['panier']['qteProduit']=array();
$_SESSION['panier']['prixProduit']=array();
$_SESSION['panier']['verrou'] = false;
$db = new PDO('mysql:host=localhost;dbname=site2e-commerce', 'root', '');
$select = $db->query("SELECT tva FROM products");
$data = $select->fetch(PDO::FETCH_OBJ);
$_SESSION['panier']['tva']=$data->tva;
}
return true;
}
function ajouterArticle($libelleProduit,$qteProduit,$prixProduit){
if(creationPanier() && !isVerrouille()){
$positionProduit = array_search($libelleProduit,$_SESSION['panier']['libelleProduit']);
if($positionProduit !== false){
$_SESSION['panier']['qteProduit'][$positionProduit] += $qteProduit;
}else{
array_push( $_SESSION['panier']['libelleProduit'],$libelleProduit);
array_push( $_SESSION['panier']['qteProduit'],$qteProduit);
array_push( $_SESSION['panier']['prixProduit'],$prixProduit);
}
}else{
echo'Erreur, veuillez contacter l\'assistance';
}
}
function modifierQteArticle($libelleProduit,$qteProduit){
// Si le panier existe
if(creationPanier() && !isVerrouille()){
//Si la quantité est positive on modifie sinon on supp l'article
if($qteProduit>0){
//Recherche du produit dans le panier
$positionProduit = array_search($_SESSION['panier']['libelleProduit'], $libelleProduit);
if($positionProduit!==false){
$_SESSION['panier']['libelleProduit'][$positionProduit] = $qteProduit;
}
}else{
supprimerArticle($libelleProduit);
}
}else{
echo'Erreur, veuillez contacter l\'assistance';
}
}
function supprimerArticle($libelleProduit){
if(creationPanier() && !isVerrouille()){
$tmp = array();
$tmp['libelleProduit'] = array();
$tmp['qteProduit'] = array();
$tmp['prixProduit'] = array();
$tmp['verrou'] = $_SESSION['panier']['verrou'];
$tmp['tva'] = $_SESSION['panier']['tva'];
for($i = 0; $i < count($_SESSION['panier']['libelleProduit']); $i++){
if($_SESSION['panier']['libelleProduit'][$i] !== $libelleProduit){
array_push($_SESSION['panier']['libelleProduit'],$_SESSION['panier']['libelleProduit'][$i]);
array_push($_SESSION['panier']['qteProduit'],$_SESSION['panier']['qteProduit'][$i]);
array_push($_SESSION['panier']['prixProduit'],$_SESSION['panier']['prixProduit'][$i]);
}
}
$_SESSION['panier'] = $tmp;
unset($tmp);
}else{
echo'Erreur, veuillez contacter l\'assistance';
}
}
function MontantGlobal(){
$total = 0;
for($i = 0; $i < count($_SESSION['panier']['libelleProduit']); $i++){
$total += $_SESSION['panier']['qteProduit'][$i] * $_SESSION['panier']['prixProduit'][$i];
}
return $total;
}
function MontantGlobalTVA(){
$total = 0;
for($i = 0; $i < count($_SESSION['panier']['libelleProduit']); $i++){
$total += $_SESSION['panier']['qteProduit'][$i]*$_SESSION['panier']['prixProduit'][$i];
}
return $total + $total*$_SESSION['panier']['tva']/100;
}
function supprimerPanier(){
unset($_SESSION['panier']);
}
function isVerrouille(){
if(isset($_SESSION['panier']) && $_SESSION['panier']['verrou']){
return true;
}else{
return false;
}
}
function compterArticles(){
if(isset($_SESSION['panier'])){
return count($_SESSION['panier']['libelleProduit']);
}else{
return 0;
}
}
?>