Sitzung beenden

hasemann

Mitglied
Hallo Leute !
Ich habe mal wieder ein Problem.Und zwar habe ich mir einen kleinen Shop gebaut und jetzt möchte ich wenn der Kunde sich auf der Seite befindtet und 15 minunten nichts macht das die Sitzung automatisch beendet wird z.B wie der SP Kasse beim Online Banking.
Ich habe einen Timestamp eingebaut womit es auch geht aber dafür muss die Seite erst wieder aktulisiert werden.
Wie kann ich das machen das die Sitzung automatisch beendet wird.

Mein Timestamp sieht so aus
$aktime = time();
$faktor = "1200";
$loeschen = mysql_query( "DELETE FROM warenkorb WHERE timestamp + $faktor <= $aktime and bestellstatus = 'Offen' ");

das Offen wird nach der Bestellung des Kunden in Bestellt umgeschrieben damit ich weiss was bestellt ist.
Also nicht verwirren alles davon.
Ich hoffe ihr könnt mir helfen und versteht mein Problem.
Danke schon mal im Vorraus
 
Speichere einfach den Zeitpunkt jeder Anfrage und vergleiche vorher, wie groß die Differenz zwischen der aktuellen Anfrage und der vorherigen ist.
 
Wie genau meinst du das?Wird dadurch die Sitzung Automatisch beendet ohne das browser aktualierst wird?
Könntet du mir ein Beispiel geben?
Damit ich sehen kann wie du das meinst.
Gruß marvin
 
Eine Sitzung wird spätestens vom Garbage Collector gelöscht (siehe session.gc_maxlifetime), der jedoch nur in einem Bruchteil aller session_start()-Aufrufe gestartet wird (siehe session.gc_probability und session.gc_divisor). Dadurch ist die session.gc_maxlifetime-Lebensdauer nur sehr ungenau und kann gerne auch überschritten werden.

Um das zu vermeiden, musst du eine eigene Lösung implementieren. Wie das algorithmisch geht, habe ich ja bereits genannt. Hier nun eine Implementierung:
PHP:
session_start();
if (isset($_SESSION['LAST_REQUEST']) && time()-$_SERVER['LAST_REQUEST'] > 1440) {
	// letzte Aktivität ist mehr als 1440 Sekunden her
	session_regenerate_id(true);
}
$_SESSION['LAST_REQUEST'] = time();
 
Zurück