8 votes

Les flashdata ne sont pas effacées dans Codeigniter

J'utilise Codeigniter 2.1.4 et je rencontre quelques problèmes avec flashdata. Lorsque je soumets un enregistrement avec succès, je peux afficher le message flashdata. Mais si je vais sur une autre page à partir de la page où le message flashdata a été affiché et que je retourne ensuite à la page précédente en utilisant le bouton retour du navigateur, le message flashdata s'affiche à nouveau.
Comment effacer le message flashdata une fois qu'il a été utilisé ? Je pense que ce n'est pas un problème de flashdata mais de cache. Je ne comprends pas pourquoi cela se produit. S'il s'agit d'un problème de cache, comment le supprimer ?

Voici le code que j'ai utilisé,

//In the manage of controller
$this->session->set_flashdata('message', "Record updated successfully.");

// In the view of controller
$data['message'] = $this->session->flashdata('message');

// In the view page
echo $message;

0voto

Nil'z Points 5503
$this->session->set_flashdata('message', "Record updated successfully.");

Après le réglage, les données flash sont redirigées vers une autre fonction ou vers la même fonction.

0voto

Hemantha Points 183

Si vous rafraîchissez dans la même fonction du contrôleur, les données flash ne seront pas supprimées, de même que les allers-retours dans le navigateur n'affectent pas les données flash. Pour effacer les flashdata, redirigez vous vers une autre fonction du contrôleur et cela fonctionnera.

0voto

Amirouche Douda Points 988

Comme Code igniter n'offre pas la possibilité de détruire la flashdata, vous pouvez contourner ce problème par un deuxième appel fictif de la fonction flashdata sans echo :

if ($this->session->flashdata('message')) :
    echo $this->session->flashdata('message'); // First normal call
    $this->session->flashdata('message'); // Second fictitious call
endif;

0voto

Maduka Jayalath Points 185

Il semble que ce problème sera corrigé dans la version 3.1.12 : https://github.com/bcit-ci/CodeIgniter/pull/6013

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X