CodeIgniter-Sitzungsklasse funktioniert nicht in Chrome

8

Ich habe ein Login-System in coderigniter project erstellt, das funktioniert in Firefox aber funktioniert nicht in Chrome, Daten holen und für Sitzung einstellen, aber wenn dieser Code Steuerelement an Admin / Dashboard umleiten, dort überprüfen wir Sitzungsdaten erneut . Wenn keine Sitzungsdaten vorhanden sind, leitet der Code den Benutzer erneut zur Anmeldung weiter ............ Mein Code ist unten und ich weiß nicht, was mit dieser Sitzung / Cookies im Code-Signierer falsch ist.

%Vor%

Ich habe viel gesucht, aber niemand arbeitet in dieser Situation, wie eine Änderung " cookie_domain " in der Konfigurationsdatei, aber nichts ist passiert ....

    
ime.devdesks 16.10.2012, 05:18
quelle

8 Antworten

18

Ich habe mich dieser Situation auch gestellt und sie durch einen längeren Ablauf der Sitzung auf einen Tag festgelegt.

UPDATE

Warum funktioniert es, indem der Ablauf der Sitzung verlängert wird?


Dieses Problem tritt aufgrund des Unterschieds zwischen den Zeitzonen des Benutzers und dem Standort des Webservers auf, z. Ich lebe in Pakistan, das ist 10 Stunden vor der US-Zeitzone und mein Server ist in den USA. Ich beantrage die Seite am 17.10.2012 um 14:00 Uhr in Pakistan. Die Zeit in den USA ist 17/10/2012 4:00, da der Webserver in den USA und der Ablauf der Sitzung auf 2 Stunden eingestellt ist. Der vom Server gesendete Cookie wird am 17/10/2012 6:00 ablaufen. Jetzt interagiert der Browser mit Ihrer lokalen PC-Zeit und es wird Zeit 17.10.2012 14:00 Daher löscht es den Cookie oder Ihren Cookie immer aktualisiert auf Ihre Anfrage. Daher ist es am besten, den Session-Ablauf auf 1 Tag zu setzen, da der größte Unterschied in der Zeitzone 17 Stunden zwischen Neuseeland und den USA ist (ich bin mir nicht sicher, ob der Unterschied falsch ist). So wird dein Cookie mindestens 7 Stunden lang am Leben bleiben

    
Shayan Husaini 16.10.2012, 09:04
quelle
2

nur um meine Erfahrung hinzuzufügen, verwende ich Codeigniter 2.1.4,

Problem: Sitzungen in Chrome haben nicht länger als ein paar Minuten gedauert oder wurden während der Ausführung von Ajax-Anfragen ausgeloggt. Ich habe mehrere Ansätze versucht: (sess_cookie_name geändert, sess_expiration time länger).

Ich habe gerade festgestellt, dass die Einstellung von sess_encrypt_cookie auf FALSE das Chrom-Logout-Problem behoben hat.

$config['sess_encrypt_cookie'] = FALSE;

Nicht sicher warum, vielleicht Cookie-Länge Problem auf Chrom (soweit ich weiß Verschlüsselung erhöht eine String-Länge).

Ich weiß, dass das Verschlüsseln ein zusätzliches Maß an Sicherheit bietet, aber soweit ich es gelesen habe, sind die im Cookie gespeicherten Daten nicht sensibel.

Ich hoffe, es hilft!

    
DiegoFreelancer 11.09.2013 00:41
quelle
1

Ich habe den Parameter sess_match_useragent in der config.php auf "false" gesetzt.

%Vor%

Und das Problem mit Google Chrome wurde behoben.

    
mariofertc 18.03.2015 04:25
quelle
0

Haben Sie überprüft, dass Sie die Sitzung für längere Zeit speichern und nicht zu früh zerstört werden? Oder kann es mit Chrome-Einstellungen für das Akzeptieren von Sitzungs- und Cookie-Daten zu tun haben, da es keinen Code in Codeigniter gibt, an dem gearbeitet wird Firefox und Chrome funktioniert nicht. Stellen Sie außerdem sicher, dass Sie Ihre Sitzungsbibliothek automatisch laden.

    
Sachin Prasad 16.10.2012 07:02
quelle
0

perfekte Antwort von Shayan Husaini Ich hatte das gleiche Problem und habe es gelöst, indem ich

geändert habe %Vor%

Sekunden in 24 Stunden, Sekunden in 2 Stunden

%Vor%

Ich lebe in Pakistan und benutze den Server von USA, damit dieses Problem auftaucht.

Danke Shayan, es war eine große Hilfe.

    
Yasir 29.01.2013 10:42
quelle
0

Ich stieß auf das gleiche Problem und konnte es schließlich lösen, indem ich die Sessions-Datenbanktabelle mit der sql-Struktur aus der neuesten Version von Codeigniter zu diesem Zeitpunkt, Version 2.1.4, aktualisierte.

%Vor%

Beachten Sie auch, dass wenn Sie mehrere Datenbanken in der Datei config / database.php konfiguriert haben, die Sitzungstabelle die Sitzungstabelle der Datenbank der Standardkonfiguration verwendet.

    
blackmambo 06.06.2014 18:33
quelle
0

Gelöst, CodeIgniter hat ein Problem, wenn die angegebene Domäne für Cookies localhost ist. Ich habe eine falsche Domäne mit der Namensstruktur einer echten Domäne in die hosts-Datei eingefügt und sie funktioniert.

    
soheil yo 24.03.2015 17:54
quelle
0

Ich weiß, das ist eine späte Antwort, aber wenn Sie hier eine gute Lösung suchen, ist es: Verwenden Sie diesen Code als Abmeldecode:

%Vor%

Dies wird das Entfernen der Sitzung "ci_session" sicherstellen, was der Hauptgrund dafür ist, dass Sie eine neue Sitzung nicht speichern können, hoffe, es hilft

    
Majid K 01.04.2015 23:13
quelle