CodeIgniter session set_flashdata nicht funktioniert
Ich habe versucht, zu verwenden $this->session->set_flashdata('success')
und es funktioniert nicht nach der Umleitung auf eine andere Funktion. Hier ist mein code:
<?php
class Home extends CI_Controller{
public function __construct(){
parent::__construct();
$this->load->helper(array('url','form');
$this->load->library(array('session','template','form_validation');
}
}
/* My another function for form_validation and etc */
public function login(){
$this->set_login_rules();
if($this->form_validation->run()){
/* inserting data to database */
$this->session->set_flashdata('welcome');
redirect('home/welcome');
}
$this->template->display('home');
}
public function welcome(){
if($this->session->flashdata('welcome') !== FALSE){
echo "<script>alert('Flashdata Success! Welcome!</script>";
}
else{
echo "<script>alert('Flashdata Failed! Go Away!');</script>";
}
}
wenn ich das Programm starte, zeigt es Alarm Flashdata Failed! Go Away!
aber die login Daten, die ich einfügen möchte, um die Datenbank in die Tabelle eingefügt.
eine weitere Sache, manchmal sind die flashdata
arbeitet. Von 10 versuchen, 8-9 versucht, wenn die Karte Flashdata Failed! Go Away!
.
Kann mir jemand sagen, warum dies geschah? Und wie kann ich es fest?
InformationsquelleAutor Wirata Adidharma | 2015-01-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie wirklich brauchen, zu geben, etwas Wert zu, also:
werden sollte:
oder Sie können die vollständige Meldung zum Beispiel:
etc...
Sehen mehr info über flashdata hier: https://ellislab.com/codeigniter/user-guide/libraries/sessions.html
$message
hinein, und zeigen nochFlashdata Failed! Go Away!
. Ich erstelle den code wie folgt:$message = 'Welcome to my site!'
und die flashdata ist wie folgt:$this->session->setflashdata('welcome',$message)
In meinemwelcome()
ich versuchen, echo der flash-Daten wie diese:echo $this->sesion->flashdata('welcome');
und Sie zeigen nichts.Könnte es sein, dass du die Umleitung auf die Startseite von der view selbst, ohne durch die Validierung? Was passiert, wenn die Validierung fehlschlägt? Sie ist nirgends angegeben.
ich habe tatsächlich noch einige code unten die
login()
form_validation->run () - code.. Wenn die form_validation nicht, ich öffnen Sie die home-Seite mit diesem code:$this->template->display('home')
. check mein update.Versuchen Sie, in eine
else
Zustand gibt, oder Ausfahrt nach dem redirect Befehl, weil manchmal eine andere oder zwei Zeilen code zu Lesen, nachdem die Umleitung, so ist es immer eine gute Sache, um die Ausführung zu stoppen, nachdem es in Fall gibt es mehr code... Es könnte auch eine Erklärung für die Zufälligkeit.InformationsquelleAutor Shomz
Aus der Codeigniter Dokumentation:
Dein problem könnte sein, dass, wenn Sie umleiten, der Vorgang dauert mehr als eine Anforderung, dass die Reinigung deiner flashdata.
Verwendung von regulären session oder query-parameter.
InformationsquelleAutor amit