CodeIgniter “flashdata” ne fonctionne pas
J'utilise CodeIgniter 2.1.0, je veux après l'insertion de données dans la base de données obtenez un message du genre "Vos données ont été correctement mis à jour.". Pour ce travail j'ai dans CI_Controller fonction suivante:
function myCiInser(){
... Here is my query ...
//$data: this var is result query that is true
if($data){
$this -> session -> set_flashdata('message', 'Your information was successfully updated.');
redirect('url/myurl');
}
}
Et j'ai en vue:
<?php
$message = $this->session->flashdata('message');
if($message){
echo '<div id="error_text">' . $message . '</div>';
}
//I test this : "echo $message;" but don't give output
?>
Mais je ne donne pas de message dans la vue, mais redirect
est fait et les travaux la vraie. et dans la base de données dans le tableau ci_sessions
colonne user_data
j'ai ceci:
a:2:{s:9:"user_data";s:0:"";s:19:"flash:nouveau:message";s:42:"Votre
l'information a été mise à jour avec succès.";}
Comment résoudre ce problème?
Mise à JOUR:
J'ai eu le message d'erreur suivant (j'utilise de chorme et par Ctrl+Maj+j-je obtenir cette alerte):
Échec du chargement de la ressource: le serveur a répondu avec un statut de 404
(Pas Trouvé)
Et je résoudre ce problème (Maintenant je n'ai pas le message d'erreur) mais toujours le même problème dans l'affichage de message. que dois-je faire?
Non, merci de voir encore une fois mon post.
Toute solution? Je vois flashdata ne fonctionnent pas lors de l'utilisation de la séance avec la base de données.
je vous remercie pour votre mise à JOUR. après la suppression de certains 404 (non trouvé) les points de vue, ma flashdata fonctionne normalement. je pense que 404 comptera comme un serveur de demande.
salut c'est une vieille question, mais comment u résolu ce probleam j'ai aussi eu ce probleam
OriginalL'auteur Kate Wintz | 2011-11-29
Vous devez vous connecter pour publier un commentaire.
De la Codeigniter Session de documentation de Classe, concernant Flashdata on peut lire:
Votre problème est peut-être que lorsque vous rediriger, le processus prend plus d'une demande, la suppression de votre flashdata.
De voir si c'est le cas, il suffit d'ajouter le code suivant dans le constructeur du contrôleur de vous rediriger vers:
Cela vous permettra de garder flashdata pour une autre demande de serveur, lui permettant d'être utilisé par la suite.
keep_flashdata
mais ne fonctionne pas, c'est toujours le même problème. Quelle est la différence entrekeep_flashdata
etflashdata
?Le keep_flashdata() la méthode n'est pas suposed pour remplacer flashdata(). keep_flashdata() conserve un flashdata variable par l'intermédiaire d'une demande additionnelle. Vous devriez lire la documentation sur le lien que j'ai posté.
Veuillez voir ma mise à jour dans mon post.
Est-ce nécessaire de rediriger la page afin de conserver un flash de données. Mon problème c'est que le premier temps de données en flash fonctionne très bien mais lorsque j'actualise la page, le flash du message de données est désactivée.
Je parie que la demande que vous pensez est le deuxième, est en fait la troisième et vous avez perdu des données par ce point.
OriginalL'auteur Quetzy Garcia
J'ai eu ce problème aussi. Je ne me souviens pas où je l'ai vu, mais voici ma solution.
CodeIgniter n'a pas traité de redirection comme une autre demande. Donc flashdata n'était pas défini dans la redirection, mais c'était sur la page suivante, j'ai chargé.
pas de travail pour moi.
Merci pour le commentaire, c'est de travailler pour moi - redirect('url/myurl','actualiser');
OriginalL'auteur Vinicius
//Ensemble de données en flash dans notre fichier de contrôleur
//Après que nous devons nous servir de redirection fonction
//Get Flash de données sur la vue
vous précisez votre problème.
le problème est que j'ai été en utilisant le même code pour mes messages flash. mais tout d'un coup ils ne fonctionnent plus.
OriginalL'auteur Sujeet Kumar
Vous pouvez également utiliser la base de données pour les sessions, mais vous devez définir la configuration des éléments:
De sorte que la session flashdata fonctionnera de nouveau
OriginalL'auteur Tihomir Mihaylov
À l'aide de sessions avec la base de données m'a causé des problèmes à la fois. Je vous recommande de créer
$config['sess_use_database'] = FALSE;
dans le config.php et de voir si le flashdata fonctionne très bien.OriginalL'auteur Abdulqader Kapadia
À l'exception d'une page, je suis en mesure d'afficher/de transmettre des valeurs à l'aide de session. J'ai essayé d'utiliser le
var_dump($this->session)
et j'obtiens:J'ai essayé en faisant écho à la flash de données dans la page sans la redirection juste après les données, mais le résultat était le même. Je recommande de couper vers le bas le code, et d'essayer de régler session dans d'autres pages. Si le problème persiste, vérifiez votre
var_dump
. Ce n'est pas la solution, mais je pense qu'il peut aider.OriginalL'auteur Alok George Babu
J'ai eu le même problème. Après vérification du code que j'ai trouvé, que je vais appeler
$this->session->sess_destroy();
, ce qui provoque le problème.OriginalL'auteur Petr
404 (non trouvé) comptent comme 1 de la demande de serveur. il va supprimer votre flashdata.
OriginalL'auteur apis17
Que j'observe sur codeigniter flashdata.
Lorsque je l'utilise en deuxième demande avec codeigniter méthode redirect() il fonctionne très bien dans mozila mais dans le cas de chrome, elle ne fonctionne pas.
OriginalL'auteur dpkrai96
Je sais je suis très en retard mais j'ai eu ce problème et je ne pouvais pas croire que dans mon cas, la solution a été très facile
il suffit de remplacer
à
OriginalL'auteur Rishabh Malhotra