Wie zu zerstören-Sitzung mit browser schließen in codeigniter
Vor kurzem habe ich entwickelt eine web-Anwendung mit codeigniter. Ich bin vor ein session-problem es schlecht.
Problem Szenario:
Wenn Benutzer A angemeldet sind, in der Anwendung dann die Benutzer-id in der session. Nach Aufgabe Benutzer Eine geschlossene seinen browser und den computer verlassen. Eine kleine Weile später Benutzer B kam, und öffnen Sie im browser die Anwendung wurde im angemeldeten Zustand. oder, wenn Benutzer B notieren Sie die url, und drücken Sie ihn direkt umgeleitet in die Anwendung ohne Authentifizierung durch die Verwendung der vorherigen Sitzung.
Ich habe folgende Konfiguration für session:
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 1800;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
Nun ist meine Frage, wie kann ich Sie zerstören alle der Sitzung mit dem schließen von browser oder eine browser-Registerkarte in codeigniter?
- Versuchen Sie
$config['sess_expire_on_close'] = TRUE;
.Sessions
- Ob zu verursachen, die Sitzung automatisch ablaufen, wenn das browser-Fenster geschlossen ist. - es funktioniert nicht. Gibt es irgendeine andere Lösung?
- Speichern Sie die sessions in eine DB?
- Nein, ich bin nicht die Speicherung der sessions in eine DB.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie javascript verwenden und asynchron Anfrage.
Wenn Sie das Fenster schließen, wird der handler des Fensters.onunload ist genannt
Lösen das problem der Umleitung, php-Seite, die Sie verwenden können, einen Zähler
Bearbeiten Sie die
config.php
- Datei und legen Siesess_expire_on_close
zutrue
.e.g
Fügen Sie eine Schaltfläche Abmelden.
Haben, die-Taste, zerstören die session mit CI erbaut im destroy-Funktion.
Haben Sie einen Blick auf diese und sehen, ob das hilft.
https://github.com/EllisLab/CodeIgniter/wiki/PK-Session
Gut, ich weiß nicht, ob du schon die Lösung, aber ich finde mich in der gleichen Situation in CodeIgniter der Version 3.0, in
config.php
gehen Sie zuSession Variables
Abschnitt, und Sie können gesetzt werden:$config['sess_expiration'] = 0;
'sess_expiration
'in $config.php Datei
zu
Öffnen Sie die Allgemeine config-Datei application/config/config.php, Suche nach $config['sess_expiration']
ändern
zu
für CI-3.0.4 suchen Sie die Elemente weiter unten innen "config.php" und entsprechend eingestellt
Einfach
sess_expiration =0
imapplication/config/config.php
Dateiwie bereits in Codeigniter Dokumentation