Page 1 sur 1

Problème Session

Posté : 19 mai 2011, 01:24
par ezakir
Bonjour,

Je vous explique mon problème:

J'ai crée un site de vente en ligne (pour m'exercer), je n'utilise pas de CMS.

Sur ma page principale, ou je liste mes articles un bouton offre la possibilité d'ajouter l'article au caddie.
Lorsque je clic dessus, je charge une nouvelle page dans laquelle je crée une session à l'intérieur de laquelle j'enregistre les données de l'article dans un array.

J'ai une page qui me permet d'aller voir mon caddie et de le gérer.

Mon problème est lorsque je veux supprimer les articles que j'ai ajouté à mon caddie. SI j'en ai plusieurs ça marche très bien, mais lorsqu'il ne m'en reste plus que un, et que je le supprime, plutôt que de m'indique que mon caddie est vide, il va me ré afficher mon caddie vide parce qu’il m'a quand même crée un array mais vide.

Comment faire pour qu'il ne le fasse pas ?

Je vous donne le code que j'utilise pour afficher mon caddie et celui pour supprimer un article.

Merci pour vos réponses :)

Scripte pour supprimer un article:
<?php
//démarre la session
session_start();

// on test que la session caddie exite
if (isset($_SESSION["caddie"])){
	//récupère le caddie de la session
	$caddie=$_SESSION['caddie'];
	//ligne du tableau à supprimer
	$ligne=$_GET['id'];
	//on créer un caddie temporaire
	$caddie_temp = array(array("id"=>0,"nbr"=>0,"art"=>"","ref"=>"","prix"=>""));
	//on copie dans le caddie temporaire tout le caddie sauf la ligne qu'on veut effacer.
	$j=0;
	for( $i=0;$i<count($caddie);$i++){
		if ($ligne != $caddie[$j]["id"]){
			$caddie_temp[$j]["id"]=$caddie[$i]["id"];
			$caddie_temp[$j]["nbr"]=$caddie[$i]["nbr"];
			$caddie_temp[$j]["art"]=$caddie[$i]["art"];
			$caddie_temp[$j]["ref"]=$caddie[$i]["ref"];
			$caddie_temp[$j]["prix"]=$caddie[$i]["prix"];
			$j=$j+1;
		}
	}
	//on sauve le caddie temporaire dans la session caddie
	if(count($caddie_temp)>0)
		$_SESSION['caddie']=$caddie_temp;
	else
		unset($_SESSION['caddie']);
}
//on retourne à la page voir_caddie.
header("Location: caddie_voir.php"); ?>
scripte pour voir mon caddie:
<?php
session_start();
include "Connection/conn.php";
// on test si y a déjà quelque chose dans votre caddie
if (isset($_SESSION["caddie"])){
	// recupere la seesion et on la met dans le tableau caddie
	$caddie=$_SESSION['caddie'];
?>
	<head>
<link rel="stylesheet" href="Templates/modele_site.dwt.css" type="text/css" />
</head>
<body>
	<div id="global">
		<div class="fond">
		<a href="index.php"><div class="banner" align="center"></div>
</a>	
		<div class="contenu" align="center">
	<table width="400" border="0" cellspacing="0" cellpadding="5" class="tableauy">
	<tr><td colspan="5" class="fond_th">vous avez <?php echo count($caddie); ?> articles dans votre caddie</td></tr>
	<?php
	$prix_tot=0;
	for( $i=0;$i<count($caddie);$i++)
    	{ ?>
    	<form action="caddie_modifier.php" method="post">
  		<tr>
	    <td><a href="caddie_supprimer.php?id=<?php echo($caddie[$i]["id"]);?>"><img src="images/boutons/b_drop.png"></a>&nbsp;</td>
		<td><input type="text" name="nbr" value="<?php echo($caddie[$i]["nbr"]);?>" size="2"></td>
    	<td><?php echo($caddie[$i]["art"]);?>&nbsp;</td>
		<td><?php echo( number_format($caddie[$i]["prix"],2));?>&nbsp;</td>
     	<td>
		<?php //on calcul le prix tot
		$prix_tot=$prix_tot+($caddie[$i]["nbr"]*$caddie[$i]["prix"]);?>
		<input type="hidden" name="id" value="<?php echo $caddie[$i]["id"]; ?>">
		<input type="submit" name="Submit" value="Mettre &agrave; jour">
	</td>
	</tr>
    	</form>
  	<?php  } ?>
	<tr><td colspan="3" class="fond_th">Prix total</td><td><?php echo number_format($prix_tot, 2, ".", "'"); ?></td><td>&nbsp;</td></tr>
    </table>
<br>
<br>

	<form name="form1" method="post" action="commander.php">
	  <table width="400" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td>*Pr&eacute;nom</td>
          <td><input name="prenom" type="text" id="prenom"></td>
        </tr>
        <tr>
          <td>*Nom</td>
          <td><input name="nom" type="text" id="nom"></td>
        </tr>
        <tr>
          <td>*Adresse</td>
          <td><input name="adresse" type="text" id="adresse"></td>
        </tr>
        <tr>
          <td>*Npa Localit&eacute; </td>
          <td><input name="npa" type="text" id="npa" size="4">
          <input name="localite" type="text" id="localite"></td>
        </tr>
        <tr>
          <td>*Email</td>
          <td><input name="email" type="text" id="email"></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><input type="submit" name="Submit2" value="Passer commande"></td>
        </tr>
      </table>
	</form>

<?php
}
else
{
    echo("votre caddie est vide");
}
?>
		</div>
		</div>
	</div>

Re: Problème Session

Posté : 19 mai 2011, 08:03
par xTG
if (isset($_SESSION["caddie"]) && count($_SESSION['caddie']) > 0){
;)