Variables de sessions qui disparaissent

shinzao
Invité n'ayant pas de compte PHPfrance

08 oct. 2013, 15:46

Bonjour,

J'ai un petit soucis avec mes variables de session. En effet, apres une redirection via la méthode POST sur une meme page, je perds mes variables de sessions.
 <?php
session_start();
if (isset($_POST['verif']) && $_POST['verif'] == 1)
{
    var_dump($_SESSION['art_name']);
    $_SESSION['verif_compo_1'] = 0;
}
if ($_POST['name'] && $_POST['prod_id'] && $_POST['poids'])
{
$poids = $_POST['poids'];
$name = $_POST['name'];
$id_art = $_POST['prod_id'];
$_SESSION['poids_art'] = $poids;
$_SESSION['art_name'] = $name;
var_dump($_SESSION['art_name']);
$_SESSION['id_produit'] = $id_art;
echo "<p> Vous avez choisis un $name de $poids. </p>";
echo '<form action="ma_page.php" method="post">';
echo '<p><label for="compo">Notre assortissement </label><input type="radio" name="compo" value="1" checked="checked"/> <br /></p>
<p><label for="compo">Sur mesure </label><input type="radio" name="compo" value="2"/> <br /></p>
<input type="hidden" name="verif" value="1">
<p><input type="submit" name="submit" value="Valider votre choix" /> <br /></p> </form>';
}
echo "<br> test 6: ";
print_r($_SESSION);
?>
Donc là, tout se passe bien dans un premier temps, les variables sont bonnes, le print_r de $_SESSION montre que tout est correctement remplis. Apres avoir validé le formulaire, tout à disparu. Je n'ai même plus les noms des variables indiqué dans le print_r.

Avez vous une idée ?

Merci d'avance

Eléphant du PHP | 130 Messages

08 oct. 2013, 15:52

Ton formulaire renvoi vers la page elle même ? (celle contenant le formulaire)

shinzao
Invité n'ayant pas de compte PHPfrance

08 oct. 2013, 15:57

Oui, mon formulaire renvoit sur la même page.
En faites, ce que je comprends pas, c'est comment ça se fait que mes variables disparaissent entre les 2 print_r ?

shinzao56
Invité n'ayant pas de compte PHPfrance

08 oct. 2013, 17:14

Désolé du double post mais j'ai trouvé quelque chose de perturbant. En effet, lorsque je regarde bien attentivement mes print_r, je peux voir que lors de mon premier tour, ou le print_r s'affiche correctement, on a comme premiere ligne: test 6: Array ( [__default] => Array ( [session.counter] => 65 [session.timer.start] => 1381234522 [session.timer.last] => 1381244530

Et quand on arrive au 2eme tour: test 6: Array ( [__default] => Array ( [session.counter] => 71 [session.timer.start] => 1381234512 [session.timer.last] => 138124513 on a une autre session counter. Est ce normal ?

ViPHP
xTG
ViPHP | 7331 Messages

08 oct. 2013, 17:34

Bah tout dépend de ce que représente ce champs...
Ce qui m'inquiète plus en interprétant les noms des variables c'est de voir qu'à priori tu as des timestamp dans le passé (2nd tour < 1er tour).

Dans quel framework s'insère ton code ?

shinzao56
Invité n'ayant pas de compte PHPfrance

08 oct. 2013, 17:41

Oui...

Hum, je suis peut etre pas sur de te suivre, mais je code sur joomla (direct php version de joomla 1.5). C'était la réponse que tu attendais ?

Comment le retour en arriere peut-il se produire ?

ViPHP
xTG
ViPHP | 7331 Messages

08 oct. 2013, 19:52

Joomla utilise son propre système de session.
Il est donc normal que tu ne retrouves pas ce que tu souhaites y insérer.
cf dernier message :
http://forum.joomla.fr/showthread.php?1 ... post522574

Je te recommande d'aller lire leur documentation pour trouver comment utiliser leur session. :)

Petit nouveau ! | 2 Messages

09 oct. 2013, 16:35

Merci, j'ai réussi à contourner mon probleme finalement :)