Timeout nach X Sekunden - per Session

staklorazac

Grünschnabel
Hallo

Wie kann ich einen Timeout per Session erstellen? :rolleyes:

Ich habe was gefunden, so etwas wäre doch geil: http://netzr.de/private/videos/4PnWSr7/

Wenn der User nicht 5 Sekunden navigiert, dann wird er automatisch per Session ausgeloggt.

Ich habe schon Anmeldeformular (Username/Passwort) und noch 2 Unterseiten erstellt, dann habe ich was probiert per session_start und IF abfrage, wenn-denn, aber leider ich bin gescheitert. :oops:

Weiss jemand wie kann ich so etwas machen, oder gibt es Tutorials dazu?

Danke &
Mfg
 
Ich weiss zwar nicht wofür das gut ist (5 Sekunden) aber...

Du könntest, wenn zwischen den letzen Timestamp und den aktuellen Timestamp eine bestimmte Zeit vergangen ist (>= 2 Minuten) die Session löschen.

Anonsten kannst Du dir auch noch set_time_limit anschauen. Hat zwar nichts mit Session zutun, aber vielleicht hilft es dir ja weiter.

Hier gibt es auch gute Infos: http://stackoverflow.com/questions/8311320/how-to-change-the-session-timeout-in-php
 
5 Sekunden war nur als Beispiel gemeint...ja ich weiss ist ziemlich kurze Zeit:D Eher 2-5 Minuten.

Ich habe was mal probiert ...aber wie immer, komme nicht weit.. :rolleyes:

PHP:
$akt_zeit = time();


$zeit = 5;


if (!isset($_SESSION["bsp"]) OR empty($_SESSION["bsp"])
OR $_SESSION["bsp"] + $zeit < $akt_zeit)
{
$_SESSION["bsp"] = $akt_zeit;
header("Location: login.php");
exit();
}
else
{
$_SESSION["bsp"] = $akt_zeit;
<p>Blablablageschützter text usw....</p>
}
 
Die Variable "Zeit" mit "5" kann so nicht (richtig) funktionieren. Du willst Doch 5 Minuten nehmen? Denn in Deinem Fall wären "5" ca. 0,083 Minuten... Also nur 5 Sekunden. Du musst beides in einer Sprache sprechen lassen. Da Du mit einem Unix-Timestamp arbeitest, musst Du das Format auch weiter benutzen. Fünf Minuten wären dann 300 Sekunden, aber das reicht immer noch nicht. Richtig wäre.

PHP:
// Die aktuelle Datum/Zeit als Unix-Timestamp
$Zeit1 = TIMENOW;

// Die aktuelle Datum/Zeit als Unix-Timestamp + 300 Sekunden
$Zeit2 = TIMENOW + 300;

5 * 60 = 300

Zeig mal ein bisschen mehr Code. Was steht in der Session drin?
 
Hallo

Sorry das ich erst jetz schreibe ...

Ich habe was mit (gefundenen) Tutorial probiert, bin leider nicht weit gekommen..

PHP:
<?php
session_start();

$host = htmlspecialchars($_SERVER["HTTP_HOST"]);
$uri = rtrim(dirname(htmlspecialchars($_SERVER["PHP_SELF"])),"/\\");

if (isset($_POST["benutzer"]) && $_POST["benutzer"] == "marco" && $_POST["passwort"] == "iphone123") {
    $_SESSION["benutzer"] = "marco";
    $_SESSION["login"] = "ok";
    $extra = "mein_blog.php";
} else {
    $extra = "login.php?f=1";
}

header("Location: $host$uri");


?>


<?php
$benutzernamen = "marco";
$kennwort = "dabfae3e14d43f88cS33376f4e9c1a37";

?>



timeout.php
PHP:
<?php

session_start();
$now = time(); // Aktuelle Zeit

$diff = 420; // Zeit in Sek, nach denen ausgeloggt wird

if (!isset($_SESSION["benutzer"]) OR empty($_SESSION["benutzer"])
    OR $_SESSION["benutzer"] + $diff < $now)
{
    $_SESSION["benutzer"] = $now;
    header("Location: http://www.google.com/"); // ... Seite wechseln ...
    exit();
}
else // Wenn alles Ok
{
    $_SESSION["last_action"] = $now;
   <h1>Geschützter Bereich</h1
   <p>Eins, zwei, drei usw...</p>

}


?>
 
Zurück