[variables de session php]
Edouard
-
Edouard -
Edouard -
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.
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.
A voir également:
- [variables de session php]
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Session invalide ou obsolète - Forum Consommation & Internet
- Veuillez ouvrir une session avec les privilèges du gestionnaire ✓ - Forum Jeux vidéo
- Php alert ✓ - Forum PHP
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";
?>
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";
?>