Example #1
0
    /**
     * checkLogInData()
     *
     * Die Anmeldedaten (Name und Passwort) des Benutzers werden überprüft
     *
     * @static
     * @access public
     * @param  string  $usr
     * @param  integer $pwd
     * @return boolean true|false
     */
    public static function checkLogInData($usr, $pwd)
    {
        // die Variablen für die Prüfung
        $pruef_usr = '';
        // Benutzername
        $pruef_pwd = '';
        // Passwort
        // Benutzername und zugehöriges Passwort auslesen
        $sql = sprintf('
				SELECT
					`benutzer`.*,
					`mitglieder`.`nachname`,
					`mitglieder`.`vorname`
				FROM
					`benutzer`
				INNER JOIN
					`mitglieder` ON `mitglieder`.`acb_nr` = `benutzer`.`id`
				WHERE
					`username` = "%s" AND
					`gesperrt` = "N"
				LIMIT 1
			', $usr);
        // SQL-Anweisung ausführen und Datensatz laden
        $data = Database::getInstance()->Select($sql);
        // es wird geprüft, ob das Ergebnis der Abfrage mindestens
        // einen gültigen Datensatz hervorgebracht hat
        foreach ($data as $record) {
            // Ergebnisse der Abfrage als Datensatz speichern
            $pruef_usr = $record->username;
            $pruef_pwd = $record->password;
            self::$_lastLogin = $record->last_log;
            // Name kürzen falls nötig
            if (substr($record->nachname, strlen($record->nachname) - 2, 1) == ' ' || substr($record->nachname, strlen($record->nachname) - 3, 1) == ' ') {
                // Name einkürzen, bsp: aus Koch C wird Koch
                $record->nachname = substr($record->nachname, 0, strlen($record->nachname) - 2);
                // führende und endende Leerzeichen entfernen falls vorhanden
                $record->nachname = trim($record->nachname);
            }
            // Benutzer-ID und -Name in die Member-Variable schreiben
            self::$_userId = $record->id;
            self::$_userName = sprintf('%s %s', $record->vorname, $record->nachname);
            // Benutzer-Rechte in die Member-Variable schreiben
            self::$_userRole = $record->rolle;
        }
        // die ermittelten Werte für Benutzer und Passwort werden verglichen
        if ($usr == $pruef_usr && md5($pwd) == $pruef_pwd) {
            // aktuelle Anmeldedaten speichern
            self::_saveLogInData(self::$_userId);
            // stimmt überein -> Zugang gewährt
            return true;
        } else {
            // stimmt nicht -> Zugang verweigert
            return false;
        }
    }