[RESOLU] bouton checkbox et session ?

Eléphant du PHP | 218 Messages

13 avr. 2014, 22:39

Bonjour, je voudrais créer une variable de session grâce à un bouton checkbox, alors lorsque je clic sur le bouton la variable a bien pour valeur 1 et lorsque celle-ci est décoché elle a bien la valeur 0.
Cependant, le problème se trouve lorsque ma session est à 1 et que je recharge ma page, car alors ma session deviens 0. Hors je voudrais que 1 soit mémorisé dans ma session lorsque je recharge ma page. Petit truc qui me paraissait simple et pourtant ca fait des heures que je suis dessus #-o

if (isset($_POST['traitement_prioritaire'])) {
	$_SESSION['traitement_prioritaire'] = 1;
}
else {
	$_SESSION['traitement_prioritaire'] = 0;
}
echo $_SESSION['traitement_prioritaire'];
Cadeaux personnalisés pour toute la famille :
https://cadeauxplaisir.com/

Eléphant du PHP | 58 Messages

14 avr. 2014, 06:58

Quand tu recharges la page, isset($_POST... renvoie false et donc ta variable de session prend la valeur 0.

Eléphant du PHP | 218 Messages

14 avr. 2014, 10:59

Quand tu recharges la page, isset($_POST... renvoie false et donc ta variable de session prend la valeur 0.
heuu oui je sais :) cest pour cela que je souhaiterais savoir comment faire pour que justement ma session ne devienne pas 0 mais reste mémorisé à 1 lorsque cette page est rechargé ?
Cadeaux personnalisés pour toute la famille :
https://cadeauxplaisir.com/

Eléphant du PHP | 58 Messages

14 avr. 2014, 11:58

Le truc c'est que si tu recharges ta page, le formulaire va être soumis une nouvelle fois. Tu peux ajouter un test dans ton if pour vérifier l’existence de ta variable de session et ainsi lui assigner une valeur seulement si elle l'existe pas. Ou bien tu peux également faire une redirection sur ta page avec un header('location:...'); ce qui fait que ton formulaire ne sera plus en mémoire.

Eléphant du PHP | 218 Messages

14 avr. 2014, 19:38

Javais oublié de préciser que le rechargement de la page se faisait sur cette meme page avec action="#". Et comme je vien de trouver la soluce, la voici :

j'ai rajouté dans le form un :
<input type="hidden" name="traitement_prioritaire_clic" value="1"/>

et ensuite mon code est :
if (isset($_POST['traitement_prioritaire_clic']) and isset($_POST['traitement_prioritaire'])) {

	$_SESSION['traitement_prioritaire'] = 1;

}
elseif (isset($_POST['traitement_prioritaire_clic']) and !isset($_POST['traitement_prioritaire'])) {
	$_SESSION['traitement_prioritaire'] = 0;
}
echo $_POST['traitement_prioritaire'];
merci pour ton aide MorganK A+
Cadeaux personnalisés pour toute la famille :
https://cadeauxplaisir.com/