[variables de session php]

Fermé
Edouard - 22 mai 2007 à 09:39
 Edouard - 22 mai 2007 à 09:57
Bonjour à tous,

je fais un petit panier pour me familiariser avec les variables de session et je bloque sur un point : le nom de la variable de session.

Je m'explique : j'ai un formulaire qui post dans une autre page deux parametres via l'url $id (le code article) et $quant (la quantité).

Le but du code ci-dessous (de la seconde page) est de récupérer ces paramètres et d'enregistrer en variable de session le code article et la quantité. Mais là ça bloque... Systématiquement il considère qu'il n'y a pas de variable de session (quantiteinitiale = 0) alors que si je post N fois, il devrait faire la somme...

HELP !

Voilà le code de la seconde page : (addtocart.php?id=2&quant=4 par exemple)

<?php
$idarticle = $id;
$quantiteajoutee = intval($quant);

if ( isset ($_SESSION["$id"]) ) {
$quantiteinitiale = intval($_SESSION["$id"]);
}
else {
$quantiteinitiale = 0;}
$quantitetotale = intval($quantiteinitiale) + intval($quantiteajoutee);
$_SESSION["$id"] = $quantitetotale;
?>
Vous venez d'ajouter <?php echo "$quantiteajoutee";?> unité(s) de l'article <? echo "$idarticle";?>.
<br>
Vous aviez une quantité initiale de : <?php echo "$quantiteinitiale";?> unités.
<br>
Soit une quantité totale de : <?php echo "$quantitetotale";?> unités.

1 réponse

Merci à tous,

J'ai fini par résoudre mon problème il venait des guillemets et simple quote (comme tjs) : voici le code corrigé pour ceux que ça intéresse :

<?php
session_start();
// $sid = session_id();
// $sname = session_name();
$codearticle = "'$id'";
$quantiteajoutee = intval($quant);
//$typeid = gettype($idarticle);
//$typeajout = gettype($quantiteajoutee);
//echo $typeid;
//echo $typeajout;
echo "$codearticle";

if ( isset ($_SESSION[$codearticle]) ) {
echo"il est passé ici !";
$initialetemp = $_SESSION[$codearticle];
$quantiteinitiale = intval($initialetemp);
}
else {
echo "non il est passé par là!";
$quantiteinitiale = 0;}
echo "mais aussi ici !";
$quantitetotale = intval($quantiteinitiale) + intval($quantiteajoutee);
$_SESSION[$codearticle] = $quantitetotale;
?>
Vous venez d'ajouter <?php echo "$quantiteajoutee";?> unité(s) de l'article <? echo "$id";?>.
<br>
Vous aviez une quantité initiale de : <?php echo "$quantiteinitiale";?> unités.
<br>
Soit une quantité totale de : <?php echo "$quantitetotale";?> unités.

Lecture réalisée :

<?php
// Vérifier si la variable existe puis la lire
if ( isset ($_SESSION[$codearticle]) ) {
$test = $_SESSION[$codearticle]; }
else {
$test = "variable de session non enregistrée"; }

echo "$test";

?>
0