Hello tout le monde,
Je me permet de venir demander de l'aide car là je sèche.
Je m'explique, je définit une variable de session sur une page pour afficher un message en alerte sur une autre, jusque là tout va bien, mais comme ce message est en session, je fais un unset() de cette variable, mais le soucis c'est que le unset même si je l'écrit en bas de ma page, mon affichage plus haut ne s'affiche plus O_o.
j'ai retourner le problème dans tout les sens et rien n'y fait.
voici mes pages :
Page de ma class Session :
Page où je définit la Session :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 /** * Permet d'ajouter un message flash * @param string $key Clef de l'array pour le retour vers l'utilisateur (Success, Danger) * @param string $message Message à mettre dans le flash */ public function setFlash($key, $message){ $_SESSION['flash'][$key] = $message; } /** * Vérification de la variable flash * @return boleen Si il y a ou non des messages flash */ public function hasFlashes(){ return isset($_SESSION['flash']); } /** * On retourne les messages flash */ public function getFlash(){ $flash = $_SESSION['flash']; unset($_SESSION['flash']); return $flash; }
Page où elle doit s'afficher :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 App::getSession()->setFlash("success", "Votre mail vient de nous être envoyé, nous vous en remercions."); App::redirect("/");
Je précise bien que les session_start() sont bien fait, car sans le unset() cela fonction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php if(App::getSession()->hasFlashes()):?> <?php foreach(App::getSession()->getFlash() as $type => $message):?> <div class="alert alert-<?=$type;?>"> <p><?=$message;?></p> </div> <?php endforeach;?> <?php unset($_SESSION['flash']; ?> <?php endif;?>
Sachant que cela marche sur un de mes autre site en ligne, mais là impossible en local de faire marcher, et même en ligne pour ce site là.
c'est comme ci le unset() fonctionnais avant tout le reste ...
Dans l'attente de votre aide, je vous remercie,
Mathieu
Partager