Also habe ich eine Login-Seite, die die Anmeldeinformationen des Benutzers überprüft, und setzt dann codeigniter Sitzungsdaten 'E-Mail' und 'is_logged_in' und ein paar andere Elemente. Auf der ersten Seite nach dem Login sind die Daten zugänglich. Nach dieser Seite kann ich nicht mehr auf die Sitzungsdaten zugreifen. In der Tat, wenn ich versuche, diese erste Seite neu zu laden, sind die Sitzungsdaten verschwunden.Codeigniter Sitzung Daten nicht in anderen Seiten nach dem Login
Ich habe versucht, es in der Datenbank zu speichern, es unverschlüsselt speichern (schlechte Idee, die ich weiß, aber es war für die Fehlersuche), und speichern Sie es verschlüsselt. Ich habe die Session-Bibliothek in der config.php automatisch geladen.
Hier ist ein Beispiel für den Code, den ich die Sitzungsdaten setzen bin mit:
$data = array(
'email' => $this->input->post('username'),
'is_logged_in' => true
);
$this->session->set_userdata($data);
Und es abzurufen, ich verwende:
$this->session->userdata('email');
Oder
$this->session->userdata('is_logged_in');
Ich habe viel Arbeit mit PHP und Cookies und Sitzungen vor, aber das ist mein erstes Projekt mit Codeigniter und ich bin perplex.
Könnte es etwas mit Verzeichnisproblemen zu tun haben? Ich habe die Anmeldeseite und den Prozess von einem "Login" -Controller gesteuert und leitet sie dann an einen "Site" -Controller weiter.
Vielen Dank für Ihre Hilfe, und bitte lassen Sie mich wissen, wenn ich etwas klären muss.
Haben Sie gesehen in der Datenbank Tabelle Eintrag des angemeldeten Benutzers hinzugefügt oder nicht in der Tabelle ci_sessions? Und JSON-Array für die Spalte, die Sie gespeichert haben –
Verwenden Sie diese native Sitzungsbibliothek: –
AlamoPS
Ich deaktivieren CSRF und XSS-Gegenmaßnahmen in der config.php, wenn ich entwickle. Schalte auch die Sicherheit für Cookies in Dev aus. Schieben Sie Ihre Dev config.php Datei nicht auf Prod. –