MyBB.de Forum

Normale Version: Automatischer Login
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe ein Problem. Ich möchte mein Forum so anpassen, dass wenn der User eine halbe Stunde nichts tut, er automatisch ausgeloggt wird. Dazu habe ich auch schon die class_session.php verändert.
Hier meine Veränderung:
Original
PHP-Code:
        // Attempt to load the session from the database.
        
$query $db->simple_select(TABLE_PREFIX."sessions""*""sid='".$this->sid."' AND ip='".$db->escape_string($this->ipaddress)."'"1);
        
$session $db->fetch_array($query);
        if(
$session['sid']) 

Meine Version:
PHP-Code:
        // Attempt to load the session from the database.
        
$query $db->simple_select(TABLE_PREFIX."sessions""*""sid='".$this->sid."' AND ip='".$db->escape_string($this->ipaddress)."'"1);
        
$session $db->fetch_array($query);
        if((
$session['sid']) and ($session['time'] < time() - 1800)) 

Leider tut sich dabei nichts. Weiss jemand, was ich falsch gemacht habe??

Meine MyBB-Version: 1.2.11
PHP-Version: 5.2.5
Müsste es nicht so sein?
PHP-Code:
if(($session['sid']) and ($session['time'] > time() - 1800)) 
Stimmt, logischer Weise muss das so sein. Ich habe es gerade ausprobiert, allerdings scheint es trotzdem keine Wirkung zu haben. Aber vielen Dank auf jeden schonmal.
Mal als Idee: Wäre es nicht sicherer einfach alle Sessions von angemeldeten Benutzen (uid != 0), die älter als 30 Minuten sind, aus der Tabelle sessions zu löschen? Dadurch ist garantiert keine Session mehr vorhanden.
So, ich habe nochmal geforscht und ich habe herausgefunden, dass daran liegt, dass die Variabel $time nicht oben definiert worden ist. Soweit funktioniert das Skript jetzt. Allerdings bekommt das Forum woanders die sid und uid her. Weiss jemand woher?
Vielen Dank bis hierhin auf jeden Fall.
Die Daten sind in Cookies gespeichert und werden vermutlich daraus bezogen. Wenn du entweder den Datenbankeinstrag oder die Cookies löschen lässt, sollte es keine Probleme geben.
Ich habe es jetzt mal versucht einzubauen. Den folgenden Code habe ich einfach dortdrüber eingefügt:
PHP-Code:
        $timecut time()-60;
        
$db->delete_query(TABLE_PREFIX."sessions""time<='$timecut'");