sessionID aus DB löschen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aussehen
browser
fehler
feld
gel
letzte action
nachname
not
null
page
probier
problem
re
session
set
sperre
strich
tabelle
update
vorschlag
-
auf meiner ref="/tag/page">page kann man sich als registrierter user einloggen. wird man eingeloggt, wird die sessionID in die Datenbank geschrieben, die tabelle sieht folgenderma?en aus:
`Id` int(11) NOT NULL auto_increment,
`session` varchar(50) NOT NULL default '',
`username` varchar(50) NOT NULL default '',
`userpassword` varchar(50) NOT NULL default '',
`vorname` varchar(50) NOT NULL default '',
`nachname` varchar(50) NOT NULL default '',
`admin` int(11) NOT NULL default '0',
`lastAction` timestamp(14) NOT NULL,
mein problem tritt nun beim ausloggen auf:
wie realisiert man es, dass wenn man sich nicht ausloggt, die ID aus dem Feld 'session' wieder gel?scht wird? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
dass ist schon klar.
doch was passiert wenn jemand sich nicht selber ausloggt, sondern einfach den browser schlie?t?
deshalb soll ja nach einer bestimmten zeit in der der user nicht agiert hat die session gel?scht werde. deshalb auch das feld 'lastAction' welches jedesmal aktualiesiert wird wenn ein user einen link anklickt.
und nachdem er beispielsweise zehn minuten nichts gemacht hat, soll er ausgeloggt werden. -
so m?sste das gehen
$sperre = time()-600; // 600 sec. = 10 min. oder? :D
$query = mysql_query("UPDATE FROM tabelle WHERE lastAction<$sperre Set = session = '' ");
also hier wird die session auf '' gesetzt, wo die letzte Action l?nger als die in der variablen sperre angegeben zur?ckliegt
probs ma aus
achja tabelle noch druch deine tabelle ersetzten -
ok ich probier es aus, aber m?sste es wenn dann nicht so aussehen:
$sperre = time()-1; // 600 sec. = 10 min. oder? :D
mysql_query("UPDATE user SET session = ' ' WHERE lastAction < $sperre");
mein Vorschlag war flgender, funktioniert aber irgendwie nicht:
$res = mysql_query("SELECT Id, lastAction FROM user WHERE Id='$user_id')");
$dsatz = mysql_fetch_assoc($res);
$lastAction = $dsatz["lastAction"];
if ( $lastAction < (time()-600) )
{
mysql_query("UPDATE user SET session = ' ' ");
} -
ok ich probier es aus, aber m?sste es wenn dann nicht so aussehen:
$sperre = time()-1; // 600 sec. = 10 min. oder? :D
mysql_query("UPDATE user SET session = ' ' WHERE lastAction < $sperre");
jop das mit dem FROM is falsch
kommt vom abkopieren aus meiner "scriptsammlung" ^^
mein Vorschlag war flgender, funktioniert aber irgendwie nicht:
$res = mysql_query("SELECT Id, lastAction FROM user WHERE Id='$user_id')");
$dsatz = mysql_fetch_assoc($res);
$lastAction = $dsatz["lastAction"];
if ( $lastAction < (time()-600) )
{
mysql_query("UPDATE user SET session = ' ' ");
}
m?sste eingetlich auch gehen, aber halt nen bischen umfangreicher als mein script... is aber jacke wie hose -
mein Vorschlag war flgender, funktioniert aber irgendwie nicht:
$res = mysql_query("SELECT Id, lastAction FROM user WHERE Id='$user_id')");
das funktionirt nicht, weil dort eine klammer zuviel ist. solche fehler findet man schneller mit mysql_error()
$res = mysql_query("SELECT Id, lastAction FROM user WHERE Id='$user_id'") or die(mysql_error()); -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage