PHP supprimer une valeure d'une session

Fermé
emialpina - 2 juil. 2010 à 12:02
 emialpina - 2 juil. 2010 à 14:39
Bonjour,

J'essai de mettre en place un panier et je coince depuis plusieurs jours. J'ai mis en place un bouton ajouter avec le choix de la quantité et qui renvoie par post vers une page de traitement. Sur cette page de traitement s'affiche aussi le panier (juste pour la version de test et le développement). Ici j'ai une fonction qui m'affiche le panier. Pour chaque article je peux avoir une quantité supérieure à 1. Je n'ai pas développé un bouton modifier la quantité, mais j'ai un bouton (lien qui envoi par get) pour supprimer toute la quantité de l'article. Ici c'est le problème. Comment faire pour supprimer de la session les enregistrement qui ont la valeur de get[id] ? Avec unset($_SESSION['produits'][$id]) ne marche pas. SVP AIDEZ MOI.
Merci d'avance
A voir également:

3 réponses

Il est normal et que l'unset ne marche pas sur les variables de session, c'est pareil pour les $_get ou les $_post.

Lorsque tu clique sur le bouton de suppression de toute la quantité de larticle le mieux et d'envoyer vers une nouvelle page de traitement sur laquelle, après le traitment, tu fera une redirection.

Avec un bouton les données nécessaire se trouvent dans $_post, alors peut etre que $_session n'est pas utile pour les quantité, garde $_session uniqement pour l'identifiant du client ou son login.

De maniere generale il ne faut pas pas envoyer vers la page actuelle car à chaque actualisation ca renverra les données, alors que si entre temps il y a eu la page de traitement intermédiaire qui fait une redirection, ca renverra rien si tu actualise la page.
1
Utilisateur anonyme
2 juil. 2010 à 12:06
Beh tu peux ecraser ton $_SESSION['produits'][$id] par une valeur NULL.
car si UNSET ne fonctionne pas je vois rien d'autre.
0
partie du code de la page index:


<form name='ajout_panier' action='adcos.php' method='POST'>
<input type="hidden" name="idcab" id="idcab" value="1">
<table border='0'>
<tr>
<td align="right"><input type='text' maxlength='2' size='1' value='1' name='QTE'></td>
<td align="left"><a href=javascript:Maj_qte(1);><img border='0' name='qte_plus' src='images/qte_plus.gif' title='Augmenter la quantité' alt='Augmenter la quantité'/></a><br>
<a href=javascript:Maj_qte(-1);><img border='0' name='qte_moins' src='images/qte_moins.gif' title='Diminuer la quantité' alt='Diminuer la quantité'/></a></td></tr>
<tr>
<td colspan="2">
<input type='image' src='images/AjouterPanier.gif' title="Ajouter l'article à votre panier" alt="Ajouter l'article à votre panier"/></td>
</tr>
</table>
</form>


le cod du fichier adcos.php

<?php
include("connect.php");

for($i=0; $i<$_POST[QTE]; $i++)
{
$_SESSION['products'][] = $_POST['idcab'];
}

echo "Le produit est dans le panier";

function getcart(){
if(!count($_SESSION['products']))
echo "<table cellspacing='5' cellpadding='5'>
<tr>
<td id='info'>Pas de produits dans le panier!</td>
</tr>
</table>";
else{
$total = 0;
foreach(array_count_values($_SESSION['products']) as $cleu=>$valu){
$result=mysql_query("select * from vin where id='$cleu'");
$row=mysql_fetch_array($result);
echo "<table cellspacing='5' cellpadding='5' style='border-top: 1px solid #0072aa;'>";
$id = $row['id'];
$product = $row['product'];
$company = $row['company'];
$price = $row['price'];
$urlimage = $row['urlimage'];
$prixu = $price*$valu;
$total += $prixu;
echo "<tr>
<td rowspan='4'>
<img src=\"images/$urlimage\" alt=\"$product\" align=\"center\" width='75'></td>
<td id='product' width='800'>$product</td>
</tr>
<tr><td>Quantite : $valu</td></tr>
<tr>
<td id='company'>by $company</td>
</tr>
<tr>
<td id='price'>Prix unitaire: $price</td>
</tr>
<tr>
<td id='price'>Prix : $prixu</td>
</tr>
<tr>
<td colspan='2' align='center'><a href='suparticle.php?id=$id' class='link'>Supprimer</a></td>
</tr>";
echo "</table>";
}
echo "<table align='center'><tr><td colspan='2' id='total' align='center'>Prix total: ".$total."</td></tr></table>";
}
}

getcart();

?>

codu du suparticle.php


<?php

include("connect.php");

$id=$_GET[id];
unset($_SESSION['products'][$id]);

function getcart(){
if(!count($_SESSION['products']))
echo "<table cellspacing='5' cellpadding='5'>
<tr>
<td id='info'>Nu sunt produse in cos!</td>
</tr>
</table>";
else{
$total = 0;
foreach(array_count_values($_SESSION['products']) as $cleu=>$valu){
$result=mysql_query("select * from vin where id='$cleu'");
$row=mysql_fetch_array($result);
echo "<table cellspacing='5' cellpadding='5' style='border-top: 1px solid #0072aa;'>";
$id = $row['id'];
$product = $row['product'];
$company = $row['company'];
$price = $row['price'];
$urlimage = $row['urlimage'];
$prixu = $price*$valu;
$total += $prixu;
echo "<tr>
<td rowspan='4'>
<img src=\"images/$urlimage\" alt=\"$product\" align=\"center\" width='75'></td>
<td id='product' width='800'>$product</td>
</tr>
<tr><td>Quantite : $valu</td></tr>
<tr>
<td id='company'>by $company</td>
</tr>
<tr>
<td id='price'>Prix unitaire: $price</td>
</tr>
<tr>
<td id='price'>Prix : $prixu</td>
</tr>
<tr>
<td colspan='2' align='center'><a href='suparticle.php?id=$id' class='link'>Sterge</a></td>
</tr>";
echo "</table>";
}
echo "<table align='center'><tr><td colspan='2' id='total' align='center'>Prix total: ".$total."</td></tr></table>";
}
}

getcart();
?>
Vraiment je ne sais plus quoi faire. Merci de bien vouloir m'aider SVP
0