• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Kein Einloggen mehr möglich obwohl ohne Fehler

Status
Für weitere Antworten geschlossen.
Moin, also ich habe heute eine Klasse geschrieben, die den Login setzt... Leider habe ich mit dem Autologout ein paar Schwierigkeiten. Er setzt mich direkt nach dem Login wieder offline, obwohl ein Timeout von 10 Mins gesetzt wurde. Da ich nicht mit JavaScript und Ajax arbeiten will, um den Timeout zu setzen, da man dies abschalten kann, ergeben sich gewisse Schwierigkeiten.

Hier der Code der Klasse:
PHP:
<?php

require('./sql.class.php');

class Login
    {
         private $DB;

         public function __construct()
                {
                $this->DB = new SQL("localhost","**User**","**PW**","**DB**");
                $this->Timeout("users");
                }

         public function checkUser($User, $PW, $Table)
                {
                $row_user = $this->DB->SelectOne("SELECT * FROM ".$Table." WHERE Username='".$User."' AND Password='".md5($PW)."' LIMIT 1");
                $userid = $row_user['ID'];

                if ( $userid )
                 {
                 return $userid;
                 }

                if ( !$userid )
                 {
                 return false;
                 }
                }

         public function Login($UserID, $Table)
                {
                $qry = $this->DB->Query("UPDATE ".$Table." SET UserStatus='1', UserSession='".session_id()."', LastAction='".time()."' WHERE ID='".$UserID."'");
                return ($qry);
                }

         public function Logout($Table)
                {
                $qry_user = $this->DB->Query("UPDATE ".$Table." SET UserStatus='0', UserSession=NULL WHERE UserSession='".session_id()."'");
                }

         public function LoggedIn($Table)
                {
                $row_user = $this->DB->SelectOne("SELECT UserStatus FROM ".$Table." WHERE UserSession='".session_id()."' LIMIT 1");
                if ( $row_user )
                 {
                 return true;
                 }
                if ( !$row_user )
                 {
                 return false;
                 }
                }

         public function Timeout($Table)
                {
                $last = $this->DB->SelectOne("SELECT LastAction FROM ".$Table." WHERE UserSession='".session_id()."' LIMIT 1");
                if ( (time() - 600) > $last['LastAction'] )
                 {
                 $Res = $this->DB->Query("UPDATE ".$Table." SET UserStatus='0', UserSession=NULL WHERE UserSession='".session_id()."'");
                 return $Res;
                 }
                }

         }

?>

EDIT: HABE DEN FEHLER GEFUNDEN, SRY, BITTE CLOSEN ODER LÖSCHEN!
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben