Halli Hallo,
ich habe 'en Script und wollte da eine Abfrage einbauen, der schaut, wann die letzte Aktivität (neuer Request) des Users war und wenn diese 30 Minuten zurückliegt, soll die Session unsettet werden.
session.gc_maxlifetime habe ich schon versucht, klappt aber auf XAMPP nicht. Ich hoffe, dass das am Dateisystem liegt.
Jedenfalls möchte ich es noch selbst machen:
NOW() speichert ja kein Timestamp.
Ich möchte nur "automatisch" ausloggen lassen, weil es vorkommt, dass der Browser einfach geschlossen wird.
Edit: Erledigt, aber neue Fragen in folgenden Posts.
ich habe 'en Script und wollte da eine Abfrage einbauen, der schaut, wann die letzte Aktivität (neuer Request) des Users war und wenn diese 30 Minuten zurückliegt, soll die Session unsettet werden.
session.gc_maxlifetime habe ich schon versucht, klappt aber auf XAMPP nicht. Ich hoffe, dass das am Dateisystem liegt.
Jedenfalls möchte ich es noch selbst machen:
PHP:
<?php
// Dieser Script wird in jede Datei includet, die geschützt werden soll
session_start();
include('db.php'); # Datenbankverbindung
include_once('funktionenundso.inc.php'); # Funktionen
# ausloggen
if(isset($_GET['logout'])) logout();
# Login überprüfen
# prüft Sessionvariablen und ob die IP Adresse des Einloggers mit dem aktuellen User übereinstimmt (Session Hijacking vermeiden)
if($_SESSION['eingeloggt'] && $_SESSION['user'] && $_SESSION['ip'] == md5(strrev($_SERVER['REMOTE_ADDR']))) {
# Letzte Aktivität des Users checken
$LastActivityQ = mysql_query("SELECT lastActivity FROM `logins` WHERE user = '".$_SESSION['user']."' LIMIT 1");
$LastActivityR = mysql_fetch_row($LastActivityQ);
# Hier hole ich 'lastActivity' aus der Datenbank. $LastActivityR ist nun aber ein Array.
# wie sollte ich hier nun am besten prüfen?!
# wenn die letzte Aktivität nicht zu lange her ist, wird hier dann die Sessionlebensdauer aktualisiert (in DB geschrieben)
mysql_query("UPDATE `logins` SET lastActivity = NOW() WHERE user = '".$_SESSION['user']."' LIMIT 1"); # Letzte Aktivität in DB speichern
} else { # Login false
logout();
}
# ansonsten, wenn also eingeloggt, alles in bester Ordnung und die Datei ist sichtbar.
?>
Ich möchte nur "automatisch" ausloggen lassen, weil es vorkommt, dass der Browser einfach geschlossen wird.
Edit: Erledigt, aber neue Fragen in folgenden Posts.
Zuletzt bearbeitet: