Erreur introuvable...

Petit nouveau ! | 1 Messages

07 déc. 2019, 03:17

Bjr,


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; } } ?>

Mammouth du PHP | 1967 Messages

09 déc. 2019, 14:21

Que cherche tu a faire avec ton array_push ??

A priori tu ajoute de plus en plus de donnée dans ton tableau qui devient trop grand par rapport à la mémoire dispo.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube