Codeigniter Sitzungsdaten sind nach der Anmeldung auf anderen Seiten nicht verfügbar

8

Also habe ich eine Anmeldeseite eingerichtet, die die Anmeldeinformationen des Benutzers überprüft und dann die Code-Signalisierungs-Sitzungsdaten "E-Mail" und "is_logged_in" sowie einige andere Elemente einstellt. 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 weg.

Ich habe versucht, es in der Datenbank zu speichern, es unverschlüsselt zu speichern (schlechte Idee, die ich weiß, aber es war für die Fehlersuche), und es verschlüsselt zu speichern. Ich habe die Session-Bibliothek in der config.php automatisch geladen.

Hier ist ein Beispiel für den Code, den ich verwende, um die Sitzungsdaten festzulegen:

%Vor%

Und um es zu holen, verwende ich:

%Vor%

Oder

%Vor%

Ich habe viel mit PHP und Cookies und Sessions gearbeitet, 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.

Danke für Ihre Hilfe und bitte lassen Sie es mich wissen, wenn ich etwas klären muss.

    
jswat 15.03.2010, 17:28
quelle

7 Antworten

6

Ihr Code sieht gut aus. Ich hatte zahlreiche Probleme mit der Sitzungsbibliothek von Codeigniter, einschließlich etwas, das dem ähnlich ist, was Sie erwähnt haben.

Betrachten Sie die Native Session -Bibliothek, um das Problem zu lösen.

    
John McCollum 15.03.2010, 17:33
quelle
4

Damit jeder, der versucht, CI-Sitzungen zu verwenden, etwas zu versuchen hat:

Ich habe nach einer Lösung für das gleiche Problem gesucht und nach vielen Sackgassen habe ich meine config.php erneut untersucht.

Darin habe ich festgestellt, dass $config['cookie_domain'] nicht richtig eingestellt wurde. Nachdem ich dies eingestellt habe (und meine cookie_prefix auf '' gesetzt habe), funktionieren die Sitzungen jetzt korrekt.

Da das Cookie auf Ihre Domain gesetzt werden muss, um korrekt abgerufen zu werden, wurde einfach keine Cookie-Referenz für meine Sitzung gefunden und jedes Mal eine neue erstellt.

(Das Einrichten von Datenbanksitzungen hat immens dazu beigetragen, dies herauszufinden.)

    
Rei 23.03.2011 22:00
quelle
2

Wenn jemand auf dieses Problem stößt, gehen Sie zu config / config.php und stellen Sie sicher, dass $config['sess_use_database'] auf TRUE gesetzt ist. Dadurch werden alle Sitzungsdaten in Ihrer Datenbank gespeichert - was für mich funktioniert hat.

Wenn Sie keine Tabelle namens "Sitzungen" haben, führen Sie diesen SQL-Befehl aus:

%Vor%     
hohner 14.02.2012 23:45
quelle
0

Ich bin auch neu, um Zünder zu kodieren. Juz, um eine Idee zu geben. Hast du session_start () in deinen Controller gelegt? Hier ist das Beispiel:

class Cuser erweitert den Controller {

%Vor%

}

vielleicht bin ich falsch ... aber du kannst es versuchen ...:)

    
warhead2020 30.07.2010 08:27
quelle
0

Achten Sie darauf, Ihren Cookie-Namen zu überprüfen. Es kann keine Punkte enthalten.

Schlechter Cookie: .domain.com

Guter Cookie: domaincom

    
Antonio Max 08.07.2013 02:32
quelle
0

Warum Sie ion auth nicht zur Sicherheit und für Sitzungsdaten verwenden ... Ich benutze das immer, wenn ich eine Software mit Login erstellen möchte. Außerdem müssen Sie eine Tabelle in Ihrer Datenbank mit der Namenssitzung erstellen. Und gehen Sie zu Config- und Datenbankdateien im Config-Ordner und setzen Sie die Session auf die gewünschte Position für die Datenbank. Sie haben die Dokumentation nicht gut gelesen.

    
boursin 23.07.2014 14:52
quelle
0

Codeigniter 3.0 in ubuntu zeigt nur Array an ([__ci_last_regenerate] = & gt; 1522220387) .. verbleibende Sitzungen werden nicht angezeigt Bild eingeben Beschreibung hier

    
Shadab 28.03.2018 07:07
quelle

Tags und Links