8721 sujets

Développement web côté serveur, CMS

Bonjour, j'ai crée un panier et je n'arrive pas à afficher les articles dans ma page panier.php que j'ai ajouté j'ai ceci qui s'affiche : C:\wamp64\www\produit\lien_panier.php:35:
array (size=4)
'produit_Id' =>
array (size=0)
empty
'produit_Quantite' =>
array (size=2)
0 => int 0
1 => int 0
'produit_Prix' =>
array (size=1)
0 => float 0
'verrou' => boolean false

Votre panier
Référence Quantité Prix Unitaire Action
Votre panier est vide
voici ma page produit .php :
<!DOCTYPE html>
<html>
<body>

	<div>
		<?php

		$mysqli = new mysqli('localhost', 'root', '', 'projet_produits');

		$result = $mysqli->query('SELECT produit_Id, produit_Nom, produit_Prix FROM Produits');
		
		while ($row = $result->fetch_array())
{
	
$produit_Id = $row['produit_Id'] ;
$produit_Nom = $row['produit_Nom'];
$produit_Prix = $row['produit_Prix'];
$produits[$produit_Id] = $produit_Nom.'<br>'.$produit_Prix;
}

		?>
	</div>
	
			<ul>
		
			<?php foreach($produits as $id => $produit) : ?>
			<a href="panier.php?action=ajout&amp;produit_Id=produit_ID&amp;produit_Quantite=produit_Quantite&amp;produitPrix=produit_Prix" onclick="window.open(this.href, '', 
'toolbar=no, location=no, directories=no, status=yes, scrollbars=yes, resizable=yes, copyhistory=no, width=600, height=350'); return false;">Ajouter au panier</a>
			<li><?php echo $produit ?> </li> <br>
			
			<?php endforeach ?>
			</ul>
		<a href="panier.php">Panier</a>
		<?php
		$result->free();
		$mysqli->close();
		?>
	
</body>
</html>


lien_panier.php :
<?php

function creationPanier(){
   if (isset($_SESSION['panier'])){
      $_SESSION['panier']=array();
      $_SESSION['panier']['produit_Id'] = array();
      $_SESSION['panier']['produit_Quantite'] = array();
      $_SESSION['panier']['produit_Prix'] = array();
      $_SESSION['panier']['verrou'] = false;
   }
   return true;
 
}




function ajouterArticle($produit_Id,$produit_Quantite,$produit_Prix){

   if (creationPanier() && !isVerrouille())
   {
      $positionProduit = array_search($produit_Id,  $_SESSION['panier']['produit_Id']);

      if ($positionProduit !== false)
      {
         $_SESSION['panier']['produit_Quantite'][$positionProduit] += $produit_Quantite ;
      }
      else
      {
      
         array_push( $_SESSION['panier']['produit_Quantite'],$produit_Quantite);
         array_push( $_SESSION['panier']['produit_Quantite'],$produit_Quantite);
         array_push( $_SESSION['panier']['produit_Prix'],$produit_Prix);
      }
	  var_dump($_SESSION['panier']);
	  
   }
   else
   echo "Un problème est survenu veuillez contacter l'administrateur du site.";
}

function modifierQTeArticle($produit_Quantite,$produit_Quantite){
   //Si le panier éxiste
   if (creationPanier() && !isVerrouille())
   {
      //Si la quantité est positive on modifie sinon on supprime l'article
      if ($produit_Quantite > 0)
      {
         //Recharche du produit dans le panier
         $positionProduit = array_search($produit_Id,  $_SESSION['panier']['produit_Id']);

         if ($positionProduit !== false)
         {
            $_SESSION['panier']['produit_Quantite'][$positionProduit] = $produit_Quantite ;
         }
      }
      else
      supprimerArticle($produit_Id);
   }
   else
   echo "Un problème est survenu veuillez contacter l'administrateur du site.";
}

function supprimerArticle($produit_Id){

   if (creationPanier() && !isVerrouille())
   {
      //Nous allons passer par un panier temporaire
      $tmp=array();
      $tmp['produit_Id'] = array();
      $tmp['produit_Quantite'] = array();
      $tmp['produit_Prix'] = array();
      $tmp['verrou'] = $_SESSION['panier']['verrou'];

      for($i = 0; $i < count($_SESSION['panier']['produit_Id']); $i++)
      {
         if ($_SESSION['panier']['produit_Id'][$i] !== $produit_Id)
         {
            array_push( $tmp['produit_Id'],$_SESSION['panier']['produit_Id'][$i]);
            array_push( $tmp['produit_Quantite'],$_SESSION['panier']['produit_Quantite'][$i]);
            array_push( $tmp['produit_Prix'],$_SESSION['panier']['produit_Prix'][$i]);
         }

      }

      $_SESSION['panier'] =  $tmp;
      
      unset($tmp);
   }
   else
   echo "Un problème est survenu veuillez contacter l'administrateur du site.";
}

function MontantGlobal(){
   $total=0;
   for($i = 0; $i < count($_SESSION['panier']['produit_Id']); $i++)
   {
      $total += $_SESSION['panier']['produit_Quantite'][$i] * $_SESSION['panier']['produit_Prix'][$i];
   }
   return $total;
}

function supprimePanier(){
   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']['produit_Id']);
   else
   return 0;

}

?>


et panier.php :
<?php

session_start();
include_once("lien_panier.php");

$erreur = false;

$action = (isset($_GET['action'])? $_GET['action']:null ) ;
if($action !== null)
{
   if(!in_array($action,array('ajout', 'suppression', 'refresh')))
   $erreur=true;

   $produit_Id = (isset($_GET['produit_Id'])? $_GET['produit_Id']:null) ;
   $produit_Prix = (isset($_GET['produit_Prix'])? $_GET['produit_Prix']:null) ;
   $produit_Quantite = (isset($_GET['produit_Quantite'])? $_GET['produit_Quantite']:null) ;

   $produit_Id = preg_replace('#\v#', '',$produit_Id);

   $produit_Prix = floatval($produit_Prix);

   if (is_array($produit_Quantite)){
      $QteArticle = array();
      $i=0;
      foreach ($q as $contenu){
         $QteArticle[$i++] = intval($contenu);
      }
   }
   else
   $produit_Quantite = intval($produit_Quantite);
    
}

if (!$erreur){
   switch($action){
      Case "ajout":
         ajouterArticle($produit_Id,$produit_Quantite,$produit_Prix);
         break;

      Case "suppression":
         supprimerArticle($produit_Id);
         break;

      Case "refresh" :
         for ($i = 0 ; $i < count($QteArticle) ; $i++)
         {
            modifierQTeArticle($_SESSION['panier']['produit_Id'][$i],($QteArticle[$i]));
         }
         break;

      Default:
         break;
   }
}

echo '<?xml version="1.0" encoding="utf-8"?>';?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Votre panier</title>
</head>
<body>

<form method="get" action="panier.php">
<table style="width: 400px">
	<tr>
		<td colspan="4">Votre panier</td>
	</tr>
	<tr>
		<td>Référence</td>
		<td>Quantité</td>
		<td>Prix Unitaire</td>
		<td>Action</td>
	</tr>


	<?php
	if (creationPanier())
	{
	   $nbArticles=count($_SESSION['panier']['produit_Id']);
	   if ($nbArticles <= 0)
	   echo "<tr><td>Votre panier est vide </ td></tr>";
	   else
	   {
	      for ($i=0 ;$i < $nbArticles ; $i++)
	      {
	         echo "<tr>";
	         echo "<td>".htmlspecialchars($_SESSION['panier']['produit_Id'][$i])."</ td>";
	         echo "<td><input type=\"text\" size=\"4\" name=\"q[]\" value=\"".htmlspecialchars($_SESSION['panier']['produit_Quantite'][$i])."\"/></td>";
	         echo "<td>".htmlspecialchars($_SESSION['panier']['prixProduit'][$i])."</td>";
	         echo "<td><a href=\"".htmlspecialchars("panier.php?action=suppression&l=".rawurlencode($_SESSION['panier']['produit_Id'][$i]))."\">XX</a></td>";
	         echo "</tr>";
	      }

	      echo "<tr><td colspan=\"2\"> </td>";
	      echo "<td colspan=\"2\">";
	      echo "Total : ".MontantGlobal();
	      echo "</td></tr>";

	      echo "<tr><td colspan=\"4\">";
	      echo "<input type=\"submit\" value=\"Rafraichir\"/>";
	      echo "<input type=\"hidden\" name=\"action\" value=\"refresh\"/>";

	      echo "</td></tr>";
	   }
	}
	?>
</table>
</form>
</body>
</html>