Page 1 sur 2
Détruire une variable de session après l'avoir testée ??!!
Posté : 30 oct. 2008, 12:00
par uspy62
Bonjour à tous, j'ai un petit soucis avec un de mes scripts.
J'utilise des variables de session mais dans une de mes pages je voudrais tester si la variable de session existe et si elle est égale à une chaine de caractère et ensuite je voudrais détruire cette variable de session de manière à ce que lorsqu'on recharge la page, il n y ait plus le message d'erreur.
Voici mon code :
<?php
if(isset($_SESSION['test]) && $_SESSION['test']=="perso"){?>
<div class="toto">
<b>Info</b>:
Ca marche
<br />
</div><br />
<?php
}
unset($_SESSION['test']);
?>
Le probleme est que lorsque je ne mets pas le unset, mon script fonctionne mais la session n'est pas détruite et quand je mets le unset ma session est détruire mais mon script ne fonctionne plus, en fait ma session n'a plus de valeur dès le début du script.
Quelqu'un aurait-il une solution ?
Merci d'avance.[/code]
Posté : 30 oct. 2008, 12:16
par charabia
Les couleurs de ton code devraient t'alerter.
$_SESSION['test]
Il y a comme un oubli à ce niveau.
Posté : 30 oct. 2008, 12:23
par uspy62
Non pardon, c'est une erreur en recopiant le code, voici mon code exact :
<?php
if(isset($_SESSION['test']) && $_SESSION['test']=="perso"){?>
<div class="toto">
<b>Info</b>:
Ca marche
<br />
</div><br />
<?php
}
unset($_SESSION['test']);
?>
Posté : 30 oct. 2008, 12:36
par charabia
Quand tu parles de ton "script" c'est quoi ? C'est l'affichage de "ça marche" ?
Là si ta session est définie et si on va sur cette page, on verra le texte une première fois. Mais à une prochaine tentative on n'aura plus rien vu que la session est détruite.
C'est pas ça que tu veux faire ?
Posté : 30 oct. 2008, 13:00
par uspy62
Oui c'est ce que je veux faire mais ça ne fonctionne pas, en fait j'ai un script derriere qui me dit si le produit est particulier alors je crée un session et je lui donne la valeur "perso" sinon je ne fais rien.
Mais quand je mets la valeur "perso" dans ma session et que je vais sur ma page avec le bout de code que je t'ai montré, la session se détruit, on dirait qu'il détruit la session avant de faire le test ...
Si j'enlève mon unset, le test est bien effectué ...
Posté : 30 oct. 2008, 13:05
par charabia
Je viens de tester. J'ai initialisé une session "perso" et quand je vais sur la page, j'ai le texte. Je recharge je n'ai plus rien. Si je met une autre valeur que perso, page blanche, donc ça fonctionne comme tu veux normalement...
Posté : 30 oct. 2008, 17:07
par uspy62
ba non, voila mon problème, c'est que je ne sais pas de où ça peut venir ...
Posté : 30 oct. 2008, 21:22
par Invité
Salut,
Ca ne viendrait pas de l'initialisation de ta variable de session... ?
Posté : 03 nov. 2008, 12:24
par uspy62
ba non elle est initialisée normalement ...
voici mon bout de code php :
<?php
if(isset($_SESSION['ajout']) && $_SESSION['ajout']!="perso" && $_SESSION['ajout']!="comple"){?>
<div class="shop_tip">
<b>Info</b>:
Message d'erreur
<br />
</div><br />
<?php
}
unset($_SESSION['ajout']);
?>
si je laisse le unset(session), ça ne m'affiche pas le message d'erreur et si je le commente ça me met le message d'erreur, donc j'en conclu que ça vient forcemment de cette ligne unset ...
Posté : 03 nov. 2008, 12:40
par zeus
il y a bien le session_start() sur la seconde page ?
Posté : 03 nov. 2008, 12:48
par uspy62
oui il y a bien le session_start()
Posté : 03 nov. 2008, 12:55
par zeus
charabia nous a montré que le script en cours n'avait aucune raison de ne pas fonctionner.
Est-ce qu'il est possible de voir l'autre script, celui qui rempli la variable de session ?
edit : et donne nous le message d'erreur stp
Posté : 03 nov. 2008, 13:07
par uspy62
Voici le script d'appel, et il n'y a aucun message d'erreur ...
$req2="select ....................";
$result2=mysql_query($req2);
if(!gestion_panier(post('panier'),$url)){
$_SESSION['ajout']="erreur";
header("Location: ".racine_site().$url);
}
Posté : 03 nov. 2008, 13:12
par zeus
Dans le second script (celui qui affiche le message d'erreur), fait un
var_dump($_SESSION);
pour voir l'état de ta session.
Posté : 03 nov. 2008, 13:17
par uspy62
quand je mets le var_dump($_SESSION); il ne m'affiche rien et si je décommente ma ligne unset($_SESSION['ajout']); le var_dump($_SESSION); m'affiche toutes mes sessions en cours.