Hallo PHP-Freunde,
ich habe mir übers WE mal ein Login-Script zusammengestellt, was auch ohne Probleme funktioniert. Ich möchte jetzt nur noch eine eutomatische Logout-Funktion einbauen, sodass man als Anwender sich nicht immer ausloggen muss sondern das Fenster ausversehen auch mal schließen kann.
Ich möchte dies aber nicht mit Cookies realisieren sondern alles in einer MySQL-DB abspeichern.
Hier habe ich eine Tabelle users mit folgenden Spalten angelegt:
userid, uname, ukey, usession, login_out_time
Die Spalte login_out_time hat als Datentyp TIMESTAMP und bei jeder Anmeldung wird dieser auch automatisch geupdated.
Wie kann ich es jetzt in meiner Sessionhelper-Datei realisieren, das überprüft wird ob die Session schon 5 Minuten besteht oder nicht.
Nach 5 Minuten (300 Sekunden) soll die Session abgebaut werden und wenn möglich zur Loginseite gewechselt werden.
Ich habe hierzu schon etwas probiert aber bekomme es halt nicht wirklich hin, da muss ich doch bestimmt noch was mit SQL machen bzw. stimmt der Rest überhaupt schon ?
Es funktioniert übrigens alles andere außer halt der autologout nach 5 Minuten.
Ich danke euch schon mal für eure Hilfe
ich habe mir übers WE mal ein Login-Script zusammengestellt, was auch ohne Probleme funktioniert. Ich möchte jetzt nur noch eine eutomatische Logout-Funktion einbauen, sodass man als Anwender sich nicht immer ausloggen muss sondern das Fenster ausversehen auch mal schließen kann.
Ich möchte dies aber nicht mit Cookies realisieren sondern alles in einer MySQL-DB abspeichern.
Hier habe ich eine Tabelle users mit folgenden Spalten angelegt:
userid, uname, ukey, usession, login_out_time
Die Spalte login_out_time hat als Datentyp TIMESTAMP und bei jeder Anmeldung wird dieser auch automatisch geupdated.
Wie kann ich es jetzt in meiner Sessionhelper-Datei realisieren, das überprüft wird ob die Session schon 5 Minuten besteht oder nicht.
Nach 5 Minuten (300 Sekunden) soll die Session abgebaut werden und wenn möglich zur Loginseite gewechselt werden.
Ich habe hierzu schon etwas probiert aber bekomme es halt nicht wirklich hin, da muss ich doch bestimmt noch was mit SQL machen bzw. stimmt der Rest überhaupt schon ?
Es funktioniert übrigens alles andere außer halt der autologout nach 5 Minuten.
PHP:
function connect()
{
$con= mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('meinedb',$con) or die(mysql_error());
}
function check_user($uname, $ukey)
{
$sql="SELECT userid
FROM users
WHERE uname=MD5('".$uname."') AND ukey=MD5('".$ukey."')
LIMIT 1";
$result= mysql_query($sql) or die(mysql_error());
if ( mysql_num_rows($result)==1)
{
$user=mysql_fetch_assoc($result);
return $user['userid'];
}
else
return false;
}
function login($userid)
{
$sql="UPDATE users
SET usession='".session_id()."'
WHERE userid=".$userid;
mysql_query($sql);
header("Location:meinedatei.php");
$login_out_time=time();
}
function logged_in()
{
$sql="SELECT userid
FROM users
WHERE usession='".session_id()."'
LIMIT 1";
$result= mysql_query($sql);
return ( mysql_num_rows($result)==1);
}
function logout()
{
$sql="UPDATE users
SET usession=NULL
WHERE usession='".session_id()."'";
mysql_query($sql);
}
function timeout()
{
if ($login_out_time+300 <= time())
{
die(logout());
}
}
connect();
Ich danke euch schon mal für eure Hilfe