Sessions nach 2 Minuten zerstören?

Stephan Liebig

Erfahrenes Mitglied
Hallo,

ich will ein kleines internes Portal erstellen.
Mittels Sessions speichere ich ab, ob jemand erfolgreich eingeloggt ist oder nicht.
Allerdings bleibt die Session so lange bestehen, bis man auf Ausloggen klickt. Ich möchte aber, dass nach 2 Minuten inaktivität, die Session geschlossen wird.

Wie soll ich das am sinnvolsten machen?

Danke....
 
Du musst zu jeder Session den Zeitpunkt der letzten Aktivität speichern - kannst du ebenfalls in einer Session-Variablen machen.

Sobald jetzt - letzte_aktivität > 2 Minuten beendest du die Session (einfache If-Abfrage).

gruß shutdown
 
Also ich habe das jetzt so versucht zu lösen:

In meiner login_check.php wird folgendes gemacht:
PHP:
$logged_in = TRUE;
	session_register ("logged_in");
	$_SESSION["username"] = $_POST[username];
	$_SESSION["last_activity"] = time();
	header("Location: admin.php");
	exit;

Und in meiner Admin mache ich dann folgendes:

PHP:
$active_div = $_SESSION["last_activity"] - time();
	if($active_div > '120')
	{
		header("Location: index.php?session_over=TRUE;") ;
		exit;
	}
	else 
	{
		$_SESSION["last_activity"] = time();
	}
 
[phpf]session_unset[/phpf] gehört zur "alten" Form des Session Handlings und sollte nicht in Verbindung mit $_SESSION verwendet werden.

Für einzelne Variablen kann man [phpf]unset[/phpf] verwenden (aber NIE auf das gesamte Session Array) und für ein komplettes Löschen:
PHP:
$_SESSION = array();

Dies sollte man zusätzlich zu [phpf]session_destroy[/phpf] verwenden.
 
session.gc_maxlifetime integer
php.net hat gesagt.:
session.gc_maxlifetime spezifiziert die Anzahl der Sekunden, nach denen Daten als 'garbage' ('Müll') betrachtet und entsorgt werden. Die Speicherbereinigung wird zu Beginn einer Session durchgeführt.

Dann:
ini_set()

Das könnte dir helfen.....

Ansonsten das:
http://de3.php.net/session

Da findest du alles über sessions.
 
Zurück