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.
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.
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.)
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%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 ...:)
Achten Sie darauf, Ihren Cookie-Namen zu überprüfen. Es kann keine Punkte enthalten.
Schlechter Cookie: .domain.com
Guter Cookie: domaincom
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.
Codeigniter 3.0 in ubuntu zeigt nur Array an ([__ci_last_regenerate] = & gt; 1522220387) .. verbleibende Sitzungen werden nicht angezeigt Bild eingeben Beschreibung hier
Tags und Links php session codeigniter