PHP Session Timout

Hey Dudes und Dudines ;)

habe auf Google auf die schnelle leider nichts gefunden, deshalb hoffe ich dass mir hier mal wieder geholfen werden kann :)

Ich habe eine "index.php" Datei auf meinem Webspace,
diese ruft via Jquery/Ajax alle 10 Sekunden die Datei funktion.php auf.

Die Seite soll nur für angemeldete User sichtbar sein, dies habe ich soweit mit Sessions geregelt ( php session_start() ) am Anfang jeder Datei.


Das eigentliche Problem ist ja nun, dass mein Session Timeout niemals greifen wird, und der User nicht automatisch nach 1440 Sekunden abgemeldet wird, da Ajax die datei "funktion.php" alle 10Sekunden aufruft und somit die Session verlängert.

Gibt es eine Möglichkeit dies zu umgehen, ohne auf die Session verzichten zu müssen?


Hoffe ich habe es verständlich genug formuliert,...

Grüßle aus dem Schwabenland
selig
 
In dem Fall würde ich nicht mit einer Session arbeiten sondern mit einem Cookie.
 
Du kannst innerhalb deiner index.php den Zeitpunkt des Seitenaufrufes speichern und in deiner funktion.php dann diesen Zeitpunkt immer mit der aktuellen Uhrzeit abgleichen, das würde dann so aussehen:

index.php
PHP:
<?php

$_SESSION['timeout'] = time();

?>

funktion.php
PHP:
<?php

// das Timeout in Sekunden
$timespan = 60 * 60;

if ($_SESSION['timeout'] + $timespan < time())
{
    // Session ist abgelaufen
    exit;
}
else
{
    // Session ist noch aktiv
    // ...
}

?>
 
Danke für eure Antworten,

erstmal Bitmuncher:
Es muss aber nicht zwingend sein, dass der Client auch Cookies akzieptiert, was dann schlecht wäre. ;(

und dafuq:
Danke, genau sowas habe ich gesucht! Werde ich die nächsten Tage gleich testen und Feedback geben! =) Optimal... :)



Greetz & Gn8
selig
 
Also das ganze hat jetzt doch ein "bisschen" länger gedauert! Das tut mir leid!

Dieser Lösungsansatz findet bei mir mittlerweile verwendung und funktioniert tadellos! Ich danke dir sehr!

Mit freundlichen Grüßen
selig
 
Zurück
Oben