Panier php - PHP - Programmation
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...
++
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"> </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%"> </td>
</tr>
<tr background = "anneaux_feu.jpg">
<td width="15" nowrap="nowrap"> </td>
<td height="36" colspan="2" id="navigation" nowrap="nowrap" class="navText"><div align="center"><span class="Style23"><a href="Paged'acceuil.html">Acceuil </a> <a href="formule.html">Formule</a> <a href="carte.html">Carte</a> <a href="commande.html">Commande</a> </span> </div>
<a href="javascript:;"></a></td>
<td> </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écapitulatif</div></td>
<td width="30" rowspan="2"> </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> </p>
</td>
</tr>
</table>
<br />
<br /> </td>
<td> </td>
</tr>
<tr>
<td width="15"> </td>
<td width="35"> </td>
<td width="710"> </td>
<td width="100%"> </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"> </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%"> </td>
</tr>
<tr background = "anneaux_feu.jpg">
<td width="15" nowrap="nowrap"> </td>
<td height="36" colspan="2" id="navigation" nowrap="nowrap" class="navText"><div align="center"><span class="Style23"><a href="Paged'acceuil.html">Acceuil </a> <a href="formule.html">Formule</a> <a href="carte.html">Carte</a> <a href="commande.html">Commande</a> </span> </div>
<a href="javascript:;"></a></td>
<td> </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"> </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€</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€</p>
<p class="Style24"><a href="javascript:;">- Eau minérale : 2,00€ </p>
<p> </p></td>
</tr>
</table>
<p align="center"><br />
<span class="Style26">Cliquer sur un produit pour le rajouter à votre panier </span><br />
<br />
</p>
</td>
<td> </td>
</tr>
<tr>
<td width="15"> </td>
<td width="35"> </td>
<td width="710"> </td>
<td width="100%"> </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