Panier php

Panier php - PHP - Programmation

Marsh Posté le 21-05-2010 à 13:46:58    

J'ai un petit problème avec mes codes pour creer un panier.
 
panier.php
 
<title>Restaurant - Commande</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="mm_restaurant1.css" type="text/css" />
<style type="text/css">
<!--
.Style11 {color: #330099;
 font-size: 18px;
}
.Style13 {color: #330099;
 font-size: 18;
}
.Style12 {color: #FF0000;
 font-size: 24px;
}
.Style15 {color: #330099;
 font-size: 24px;
}
.Style17 {color: #330099}
.Style3 {font-family: cursive;
 color: #999999;
}
.Style4 {color: #330099;
 font-size: 14px;
}
.Style9 {color: #0033FF;
 font-size: 24px;
}
.Style23 {font-size: 14px}
.Style24 {color: #0033FF}
-->
</style>
</head>
<body background = "anneaux_feu.jpg">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
 <tr background = "anneaux_feu.jpg">
 <td width="15" nowrap="nowrap">&nbsp;</td>
 <td width="745" height="60" colspan="2" class="logo" nowrap="nowrap"><br />
      <span class="Style12">PIZZA HOT</span> <span class="tagline Style12"><span class="tagline  Style11"><span class="tagline  Style13"><span class="tagline  Style15"><span class="tagline  Style17">| <span class="Style3">Parceque c'est toujours chaud</span> </span></span></span></span></span></td>
 <td width="100%">&nbsp;</td>
 </tr>
 
 <tr background = "anneaux_feu.jpg">
 <td width="15" nowrap="nowrap">&nbsp;</td>
 <td height="36" colspan="2" id="navigation" nowrap="nowrap" class="navText"><div align="center"><span class="Style23"><a href="Paged'acceuil.html">Acceuil&nbsp;</a>&nbsp;&nbsp;&nbsp;&nbsp; <a href="formule.html">Formule</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="carte.html">Carte</a> &nbsp;&nbsp;&nbsp;<a href="commande.html">Commande</a>&nbsp;&nbsp;</span>&nbsp;</div>    
   <a href="javascript:;"></a></td>
 <td>&nbsp;</td>
 </tr>
 
 <tr background = "anneaux_feu.jpg">
 <td width="15" valign="top"><img src="mm_spacer.gif" alt="" width="15" height="1" border="0" /></td>
 <td width="35" valign="top"><img src="mm_spacer.gif" alt="" width="35" height="1" border="0" /></td>
 <td width="710" valign="top" bgcolor="#0033FF"><br />
 <table border="0" cellspacing="0" cellpadding="2" width="610">
        <tr>
          <td colspan="3" background = "anneaux_feu.jpg" class="pageName"><div align="center" class="Style24">Votre commande </div></td>
        </tr>
        <tr>
         <td width="260" background = "anneaux_feu.jpg" class="subHeader"><div align="center">R&eacute;capitulatif</div></td>
    <td width="30" rowspan="2">&nbsp;</td>
    <td width="320" height="100" rowspan="2"><div align="center"><img src="pizzabckgrnd.jpg" alt="large product photo" width="279" height="262" border="0" /></div></td>
        </tr>
        <tr>
          <td valign="top" bgcolor="#CCCCCC" class="bodyText"><p>&nbsp;</p>
    </td>
        </tr>
      </table>
    <br />
   &nbsp;<br /> </td>
 <td>&nbsp;</td>
 </tr>
 
 <tr>
 <td width="15">&nbsp;</td>
    <td width="35">&nbsp;</td>
    <td width="710">&nbsp;</td>
 <td width="100%">&nbsp;</td>
  </tr>
 
<?php
session_start();
include_once("fonctions-panier.php" );
 
$erreur = false;
 
$action = (isset($_POST['action'])? $_POST['action']:  (isset($_GET['action'])? $_GET['action']:null )) ;
if($action !== null)
{
   if(!in_array($action,array('ajout', 'suppression', 'refresh')))
   $erreur=true;
 
   //récuperation des variables en POST ou GET
   $l =  (isset($_POST['l'])? $_POST['l']:   (isset($_GET['l'])? $_GET['l']:null )) ;
   $p =  (isset($_POST['l'])? $_POST['p']:  (isset($_GET['p'])? $_GET['p']:null )) ;
   $q =  (isset($_POST['l'])? $_POST['q']:   (isset($_GET['q'])? $_GET['q']:null )) ;
 
   //Suppression des espaces verticaux
   $l = preg_replace('#\v#', '',$l);
   //On verifie que $p soit un float
   $p = floatval($p);
 
   //On traite $q qui peut etre un entier simple ou un tableau d'entier
     
   if (is_array($q)){
      $QteArticle = array();
      $i=0;
      foreach ($q as $contenu){
         $QteArticle[$i++] = intval($contenu);
      }
   }
   else
   $q = intval($q);
     
}
 
if (!$erreur){
   switch($action){
      Case "ajout":
         ajouterArticle($l,$q,$p);
         break;
 
      Case "suppression":
         supprimerArticle($l);
         break;
 
      Case "refresh" :
         for ($i = 0 ; $i < count($QteArticle) ; $i++)
         {
            modifierQTeArticle($_SESSION['panier']['libelleProduit'][$i],round($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="post" action="panier.php">
<table style="width: 400px">
 <tr>
  <td colspan="4">Votre panier</td>
 </tr>
 <tr>
  <td>Libellé</td>
  <td>Quantité</td>
  <td>Prix Unitaire</td>
  <td>Action</td>
 </tr>
 
 
 <?php
 if (creationPanier())
 {
    $nbArticles=count($_SESSION['panier']['libelleProduit']);
    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']['libelleProduit'][$i])."</ td>";
          echo "<td><input type=\"text\" size=\"4\" name=\"q[]\" value=\"".htmlspecialchars($_SESSION['panier']['qteProduit'][$i])."\"/></td>";
          echo "<td>".htmlspecialchars($_SESSION['panier']['prixProduit'][$i])."</td>";
          echo "<td><a href=\"".htmlspecialchars("panier.php?action=suppression&l=".rawurlencode($_SESSION['panier']['libelleProduit'][$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>
 
 
fonction_panier.php
 
<?php
 
function creationPanier(){
   if (!isset($_SESSION['panier'])){
      $_SESSION['panier']=array();
      $_SESSION['panier']['libelleProduit'] = array();
      $_SESSION['panier']['qteProduit'] = array();
      $_SESSION['panier']['prixProduit'] = array();
      $_SESSION['panier']['verrou'] = false;
   }
   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 "Un problème est survenu veuillez contacter l'administrateur du site.";
}
 
 
 
function modifierQTeArticle($libelleProduit,$qteProduit){
   
   if (creationPanier() && !isVerrouille())
   {
     
      if ($qteProduit > 0)
      {
         //Recharche du produit dans le panier
         $positionProduit = array_search($libelleProduit,  $_SESSION['panier']['libelleProduit']);
 
         if ($positionProduit !== false)
         {
            $_SESSION['panier']['qteProduit'][$positionProduit] = $qteProduit ;
         }
      }
      else
      supprimerArticle($libelleProduit);
   }
   else
   echo "Un problème est survenu veuillez contacter l'administrateur du site.";
}
 
 
function supprimerArticle($libelleProduit){
 
   if (creationPanier() && !isVerrouille())
   {
     
      $tmp=array();
      $tmp['libelleProduit'] = array();
      $tmp['qteProduit'] = array();
      $tmp['prixProduit'] = array();
      $tmp['verrou'] = $_SESSION['panier']['verrou'];
 
      for($i = 0; $i < count($_SESSION['panier']['libelleProduit']); $i++)
      {
         if ($_SESSION['panier']['libelleProduit'][$i] !== $libelleProduit)
         {
            array_push( $tmp['libelleProduit'],$_SESSION['panier']['libelleProduit'][$i]);
            array_push( $tmp['qteProduit'],$_SESSION['panier']['qteProduit'][$i]);
            array_push( $tmp['prixProduit'],$_SESSION['panier']['prixProduit'][$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']['libelleProduit']); $i++)
   {
      $total += $_SESSION['panier']['qteProduit'][$i] * $_SESSION['panier']['prixProduit'][$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']['libelleProduit']);
   else
   return 0;
 
}
 
?>
 
 
 
 
Exemple avec boisson.html
 
 
 
<title>Restaurant - Page de produits</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="mm_restaurant1.css" type="text/css" />
<style type="text/css">
<!--
.Style11 {color: #330099;
 font-size: 18px;
}
.Style13 {color: #330099;
 font-size: 18;
}
.Style15 {color: #330099;
 font-size: 24px;
}
.Style17 {color: #330099}
.Style3 {font-family: cursive;  
 color: #999999;
}
.Style4 {color: #330099;
 font-size: 14px;
}
.Style9 {color: #0033FF;
 font-size: 24px;
}
.Style23 {font-size: 14px}
.Style24 {color: #0033FF}
.Style25 {color: #CCCCCC}
.Style26 {color: #FF0000;
 font-weight: bold;
}
.Style55 {color: #FF0000;
 font-size: 24px;
}
-->
</style>
</head>
<body  background = "anneaux_feu.jpg">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
 <tr  background = "anneaux_feu.jpg">
 <td width="15" nowrap="nowrap">&nbsp;</td>
 <td width="745" height="60" colspan="2" class="logo" nowrap="nowrap"><br />
   <span class="Style55">Pizza Hot</span> <span class="tagline Style4"><span class="tagline  Style11"><span class="tagline  Style13"><span class="tagline  Style15"><span class="tagline  Style17">| <span class="Style3">Parce que c'est toujours chaud !</span></span></span></span></span></span></td>
 <td width="100%">&nbsp;</td>
 </tr>
 
 <tr  background = "anneaux_feu.jpg">
 <td width="15" nowrap="nowrap">&nbsp;</td>
 <td height="36" colspan="2" id="navigation" nowrap="nowrap" class="navText"><div align="center"><span class="Style23"><a href="Paged'acceuil.html">Acceuil&nbsp;</a>&nbsp;&nbsp;&nbsp;&nbsp; <a href="formule.html">Formule</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="carte.html">Carte</a> &nbsp;&nbsp;&nbsp;<a href="commande.html">Commande</a>&nbsp;&nbsp;</span>&nbsp;</div>    
 <a href="javascript:;"></a></td>
 <td>&nbsp;</td>
 </tr>
 
 <tr  background = "anneaux_feu.jpg">
 <td width="15" valign="top"><img src="mm_spacer.gif" alt="" width="15" height="1" border="0" /></td>
 <td width="35" valign="top"><img src="mm_spacer.gif" alt="" width="35" height="1" border="0" /></td>
 <td width="710" valign="top"><br />
 <table border="0" cellspacing="0" cellpadding="2" width="610">
        <tr>
          <td colspan="3" bgcolor="#CCCCCC" class="pageName"><div align="center" class="Style24"><a href="carte.html" class="Style24">La carte - Boissons </a></div></td>
        </tr>
        <tr>
         <td width="260" bgcolor="#0033FF" class="subHeader Style25">Un rafraichissement ? </td>
    <td width="30" rowspan="2" bgcolor="#CCCCCC">&nbsp;</td>
    <td width="320" height="100" rowspan="2" bgcolor="#CCCCCC"><div align="center"><img src="boisson.jpg" alt="large product photo" width="287" height="201" border="0" /></div></td>
        </tr>
        <tr>
          <td height="246" valign="top" bgcolor="#CCCCCC" class="bodyText"><p class="Style24"><a href="javascript:;">- Coca cola : 2,00&euro;</p>
            <p class="Style24"><a href="panier.php?action=ajout"Coca light=libelleProduit&1=qteProduit&2,00&euro=prixProduit>Coca cola light 2 euros</p>
            <p class="Style24"><a href="panier.php?action=ajout&l=sprite&q=1&p=2">ajouter au panier</a>
 
            <p class="Style24"><a href="javascript:;">- Ice Tea : 2,00&euro;</p>
            <p class="Style24"><a href="javascript:;">- Eau min&eacute;rale : 2,00&euro; </p>
            <p>&nbsp;</p></td>
        </tr>
      </table>
    <p align="center"><br />
&nbsp;  &nbsp;<span class="Style26">Cliquer sur un produit pour le rajouter &agrave; votre panier </span><br />
  &nbsp;  &nbsp;<br />  
   &nbsp;  </p>
    </td>
 <td>&nbsp;</td>
 </tr>
 
 <tr>
 <td width="15">&nbsp;</td>
    <td width="35">&nbsp;</td>
    <td width="710">&nbsp;</td>
 <td width="100%">&nbsp;</td>
  </tr>
</table>
</body>
</html>
 
 
voici ce que cela m'affiche : Votre panier
Libellé                                                                             Quantité     Prix Unitaire                                                    Action
Votre panier est vide
 
".htmlspecialchars($_SESSION['panier']['libelleProduit'][$i]).""; echo "  ".htmlspecialchars($_SESSION['panier']['prixProduit'][$i])." XX
                                                "; echo "Total : ".MontantGlobal(); echo "
"; echo ""; ech  
 
 
help

Reply

Marsh Posté le 21-05-2010 à 13:46:58   

Reply

Marsh Posté le 21-05-2010 à 15:58:53    

Salut,
 
Franchement, il n'y a aucune chance que quelqu'un te réponde vu comme ton post est présenté. Le code n'est pas indenté (cf. topics sticky) ni nettoyé (il y a du CSS dedans), tu décris à peine ton problème...
 
++

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed