2016-09-01 21 views
1

Ich möchte die Sitzung in Codeigniter-Version 3 auf ablaufen am Browser schließen.Kill Session im Browser schließen Codeigniter 3

Ich habe gegoogelt und unter Lösung, um das Problem zu beheben. Und aktualisierte unter Linie in der Anwendungskonfiguration

$config['sess_expiration'] = 0; 
$config['sess_expire_on_close'] = TRUE; 

Diese Lösung funktioniert perfekt.

Aber das Problem ist jetzt Browsersitzung bleibt leben, bis der Browser geschlossen wird, die ein Leckerbissen für meine Anwendung sein wird.

Daher wollte ich 10 Minuten Session abgelaufen Zeit auch zu halten.

So suche Hilfe aus dem Forum, um beide Szenarien in meiner Anwendung zu implementieren.

Vielen Dank im Voraus.

Antwort

0

Ich glaube, Sie diesen Code verwenden, Hier gehen Sie:

var expireSessionVar = function(e){ 
    //HERE YOUR CODE WHATEVER YOU WANT 
}; 
window.unload = expireSessionVar; 

Hoffe, es wird Ihnen helfen.

+0

Ja, das habe ich schon gemacht. Aber ich wollte auch die Verfallszeit behalten. Bitte lesen Sie die Frage durch. – SamJ

0

application \ config \ config.php

/* 
|-------------------------------------------------------------------------- 
| Session Variables 
|-------------------------------------------------------------------------- 
| 
| 'sess_cookie_name'  = the name you want for the cookie 
| 'sess_expiration'   = the number of SECONDS you want the session to last. 
| by default sessions last 7200 seconds (two hours). Set to zero for no expiration. 
| 'sess_expire_on_close' = Whether to cause the session to expire automatically 
| when the browser window is closed 
| 'sess_encrypt_cookie'  = Whether to encrypt the cookie 
| 'sess_use_database'  = Whether to save the session data to a database 
| 'sess_table_name'   = The name of the session database table 
| 'sess_match_ip'   = Whether to match the user's IP address when reading the session data 
| 'sess_match_useragent' = Whether to match the User Agent when reading the session data 
| 'sess_time_to_update'  = how many seconds between CI refreshing Session Information 
| 
*/ 
$config['sess_cookie_name']  = 'ci_session'; 
$config['sess_expiration']  = 600; 
$config['sess_expire_on_close'] = TRUE; 
$config['sess_encrypt_cookie'] = FALSE; 
$config['sess_use_database'] = TRUE; 
$config['sess_table_name']  = 'dbapp_ci_sessions'; 
$config['sess_match_ip']  = TRUE; 
$config['sess_match_useragent'] = TRUE; 
$config['sess_time_to_update'] = 300; 

/* 

nur gesetzt $config['sess_expiration']= 7200;-$config['sess_expiration'] = 600; und dies wird eingestellt Ihre Sitzung alle 10 Minuten ablaufen. Auch wenn Sie wie angegeben setzen, wird jedes Mal, wenn der Browser geschlossen wird, die Sitzung beendet.

+0

Können Sie bitte erklären, wie es beide Anforderungen löst? – SamJ

+1

@SamJ Die Standard-Ablaufzeit für Sitzungen beträgt 7200 Sekunden, was 2 Stunden entspricht. Ändern Sie die 7200 auf 600, damit Ihre Sitzung nach 10 Minuten abläuft. –

+0

@Fiasal $ config ['sess_expiration'] = 600 funktioniert gut aber $ config ['sess_expire_on_close'] = FALSE; Lösung funktioniert nicht beim Schließen des Browsers. – SamJ