getLastError() public method

Get the last error in the connection
public getLastError ( ) : Error
return Error string
Example #1
3
 /**
  * Finish the processor
  * @param string $type finish type, supports: NORMAL, BROKEN, TIMEOUT
  */
 public function finish($type = 'NORMAL')
 {
     $this->finished = true;
     if ($type === 'BROKEN') {
         $this->res->error = Connection::getLastError();
     } else {
         if ($type !== 'NORMAL') {
             $this->res->error = ucfirst(strtolower($type));
         }
     }
     // gzip decode
     $encoding = $this->res->getHeader('content-encoding');
     if ($encoding !== null && strstr($encoding, 'gzip')) {
         $this->res->body = Client::gzdecode($this->res->body);
     }
     // parser
     $this->res->timeCost = microtime(true) - $this->timeBegin;
     $this->cli->runParser($this->res, $this->req, $this->key);
     // conn
     if ($this->conn) {
         // close conn
         $close = $this->res->getHeader('connection');
         $this->conn->close($type !== 'NORMAL' || !strcasecmp($close, 'close'));
         $this->conn = null;
         // redirect
         if (($this->res->status === 301 || $this->res->status === 302) && $this->res->numRedirected < $this->req->getMaxRedirect() && ($location = $this->res->getHeader('location')) !== null) {
             Client::debug('redirect to \'', $location, '\'');
             $req = $this->req;
             if (!preg_match('/^https?:\\/\\//i', $location)) {
                 $pa = $req->getUrlParams();
                 $url = $pa['scheme'] . '://' . $pa['host'];
                 if (isset($pa['port'])) {
                     $url .= ':' . $pa['port'];
                 }
                 if (substr($location, 0, 1) == '/') {
                     $url .= $location;
                 } else {
                     $url .= substr($pa['path'], 0, strrpos($pa['path'], '/') + 1) . $location;
                 }
                 $location = $url;
                 /// FIXME: strip relative '../../'
             }
             // change new url
             $prevUrl = $req->getUrl();
             $req->setUrl($location);
             if (!$req->getHeader('referer')) {
                 $req->setHeader('referer', $prevUrl);
             }
             if ($req->getMethod() !== 'HEAD') {
                 $req->setMethod('GET');
             }
             $req->clearCookie();
             $req->setHeader('host', null);
             $req->setHeader('x-server-ip', null);
             // reset response
             $this->res->numRedirected++;
             $this->finished = $this->headerOk = false;
             return $this->res->reset();
         }
     }
     Client::debug('finished', $this->res->hasError() ? ' (' . $this->res->error . ')' : '');
     $this->req = $this->cli = null;
 }
 private function writepass(Connection $conn, $matrnr, $pass)
 {
     $pass = md5($pass);
     $matrnr = intval($matrnr);
     if ($conn->isConnected()) {
         // Email des Studenten auslesen
         $q = new DBQuery("SELECT Email FROM student WHERE MatrNr={$matrnr}");
         if ($res = $conn->executeQuery($q)) {
             if ($r = $res->getNextRow()) {
                 $email = $r[0];
             } else {
                 $this->last_error = "Die Matrikelnummer existiert nicht.";
                 return false;
             }
         } else {
             $this->last_error = "Die Matrikelnummer konnte nicht &uuml;berpr&uuml;ft werden. " . $conn->getLastError();
             return false;
         }
         // Das neue Passwort wird geschrieben
         $q = new DBQuery("UPDATE student SET Pass='******' WHERE MatrNr={$matrnr}");
         if ($res = $conn->executeQuery($q)) {
             if ($res->affectedRows() > 0) {
                 return $email;
             } else {
                 $this->last_error = "Die Matrikelnummer existiert nicht.";
                 return false;
             }
         } else {
             $this->last_error = "Die Passwort&auml;nderung konnte nicht durchgef&uuml;hrt werden. " . $conn->getLastError();
             return false;
         }
     } else {
         $this->last_error = "Keine Verbindung zur Datenbank.";
         return false;
     }
 }
Example #3
0
 public static function setAktiv(Connection $conn, $BrancheID, ErrorQueue $err)
 {
     if (!$conn->isConnected()) {
         $err->addError("Keine Verbindung zur Datenbank.");
         return false;
     }
     $neuerStatus = Branche::STATUS_AKTIV;
     $q = new DBQuery("UPDATE branche SET Status='{$neuerStatus}' WHERE BrancheID='{$BrancheID}'");
     if (!$conn->executeQuery($q)) {
         $err->addError($conn->getLastError());
         return false;
     }
 }
 public static function SystemErrorConnection($filename, $method, Connection $conn)
 {
     $message = "Filename: \"{$filename}\" <br /> \r\n";
     $message .= "Method  : \"{$method}\" <br /> \r\n";
     $message .= "Query   : \"" . $conn->getLastQuery()->getString() . "\" <br /> \r\n";
     $message .= "Error   : " . $conn->getLastError() . " <br />";
     ErrorQueue::SystemError($message);
 }
 public static function getSemsysInfo(Connection $conn, ErrorQueue $err)
 {
     $select_query = new DBQuery("SELECT PStudienplanID, Studiengang FROM studienplan ORDER BY Studiengang");
     if (!($studienplaene = $conn->executeQuery($select_query))) {
         $err->addError("Die vorhandenen studienpl&auml;ne konnten von der Datenbank nicht gelesen werden. " . $conn->getLastError());
     }
     if ($studienplaene) {
         $studiengaenge_string = "Folgende Studiengänge nehmen bereits an Studiman teil:\n";
         while ($r = $studienplaene->getNextRow()) {
             $studiengaenge_string .= $r[1] . "\n";
         }
         // while
         $studiengaenge_string .= "\n\n";
     }
     // if
     $string = "Kennst Du schon Studiman?\n" . "Studiman ist ein Tool zur Organisation Deines Semesters an der Fachhochschule Lübeck.\n" . "Deine Benutzerdaten für PRA|VER gelten ebenso für Studiman.\n" . "Schau doch mal rein unter http://osmigib.fh-luebeck.de/SemSys/ .\n\n" . $studiengaenge_string;
     return $string;
 }
include_once "../libs/libraries.php";
function invokeLogin($txt)
{
    $_SESSION['txt'] = $txt;
    include "login.php";
    exit;
}
if (isset($_POST['pass']) && isset($_POST['user'])) {
    $user = addslashes($_POST['user']);
    $_SESSION['mdpass'] = md5($_POST['pass']);
    $_SESSION['user'] = $user;
    $_POST['pass'] = "";
    $pass = "";
}
$err = new ErrorQueue();
$conn = new Connection();
$mitarbeiter = new Mitarbeiter($conn);
if (!isset($_SESSION['mdpass']) || !isset($_SESSION['user'])) {
    invokeLogin("Geben Sie Ihre Benutzernamen und Passwort ein!");
} else {
    if ($conn->connect(Config::DB_SERVER, Config::DB_NAME, Config::DB_USERNAME, Config::DB_PASSWORD)) {
        if (!$mitarbeiter->login($_SESSION['user'], $_SESSION['mdpass'])) {
            invokeLogin($mitarbeiter->getLastError());
        }
        // if can't init, do login, else it's OK
    } else {
        $err->addError($conn->getLastError());
    }
    // if-else connection
}
// if-else variables
Example #7
0
 public static function neuerAnmelden(Connection $conn, ErrorQueue $err, $name, $email, $tel, $username, $password)
 {
     $mdpass = md5($password);
     $username = addslashes($username);
     $name = addslashes($name);
     $tel = addslashes($tel);
     $email = addslashes($email);
     // Überprüfen, ob ein Dozent mit dem Benutzernamen schon existiert
     $q = new DBQuery("SELECT Username from dozentlogin WHERE Username='******'");
     if ($res = $conn->executeQuery($q)) {
         if ($res->rowsCount() > 0) {
             $err->addError("Dieser Benutzername existiert schon. W&auml;hlen Sie bitte einen anderen.");
             return false;
         } else {
             // Wenn der Benutzername nicht in der Datenbank vorhanden ist, dann darf der Dozent angemeldet werden
             $q = new DBQuery("INSERT INTO dozent(Name, EMail, Telefon) VALUES('{$name}', '{$email}', '{$tel}')");
             if ($res = $conn->executeQuery($q)) {
                 $dozentid = $res->getInsertId();
                 $q = new DBQuery("INSERT INTO dozentlogin(PDozentID, Username, Password) VALUES({$dozentid}, '{$username}', '{$mdpass}')");
                 if ($res = $conn->executeQuery($q)) {
                     // Wenn auch der Benutzer angelegt wurde
                     // versenden wir eine Mail dem Dozenten
                     Mailer::mailit($email, "Anmeldung zur Web-Faecherverwaltung", "Hallo {$name},\n willkommen im Web-System zur Faecherverwaltung. Ihre Benutzerdaten sind: Benutzername: \"{$username}\"\nPasswort: \"{$password}\"");
                     return true;
                 } else {
                     $err->addError("Der Benutzer konnte nicht angelegt werden. " . $conn->getLastError());
                     // Hier wird versuch den angelegten Dozent zu entfernen.
                     $conn->executeQuery(new DBQuery('DELETE FROM dozent WHERE PDozentID=' . $dozentid));
                     return false;
                 }
             } else {
                 $err->addError("Der Dozent konnte nicht angelegt werden. " . $conn->getLastError());
                 return false;
             }
         }
     } else {
         $err->addError($conn->getLastError());
         return false;
     }
 }
Example #8
0
 public static function enumFreigaben(Connection $conn, ErrorQueue $err)
 {
     $q = new DBQuery("SELECT FreigabeID, FreigabeBereich FROM freigabe ORDER BY FreigabeID");
     if ($conn->isConnected()) {
         if ($result = $conn->executeQuery($q)) {
             return $result;
         } else {
             $err->addError("Datenbankfehler: " . $conn->getLastError());
         }
     } else {
         return false;
     }
 }
 public static function getAlleMitarbeiter(Connection $conn, ErrorQueue $err, UtilBuffer $buffer)
 {
     $q = new DBQuery("SELECT Username, Name, Email, Zugangsstufe FROM mitarbeiter ORDER by Name");
     if ($result = $conn->executeQuery($q)) {
         while ($r = $result->getNextRow()) {
             $mit = new Mitarbeiter($conn);
             $mit->benutzername = $r[0];
             $mit->name = $r[1];
             $mit->email = $r[2];
             $mit->zugangsstufe = $r[3];
             $buffer->add($mit);
         }
         return true;
     } else {
         $err->addError("Die Mitarbeiter konnten nicht ausgelesen werden. " . $conn->getLastError());
     }
     return false;
 }
Example #10
0
 public static function readStudent(Connection $conn, ErrorQueue $err, $matrnr)
 {
     $matrnr = intval($matrnr);
     $s = "SELECT s.MatrNr, s.Name, s.EMail, s.Text, s.Semesterzahl, s.PStudienplanID, s.Vorname, s.StudiengangID FROM student s WHERE s.MatrNr = " . $matrnr;
     $q = new DBQuery($s);
     if ($result = $conn->executeQuery($q)) {
         if ($row = $result->getNextRow()) {
             $studi = new Student($conn);
             $studi->loggedIn = true;
             $studi->matrnr = $row[0];
             $studi->name = $row[1];
             $studi->email = $row[2];
             $studi->text = urldecode($row[3]);
             $studi->semester = $row[4];
             $studi->vorname = $row[6];
             $studi->studiengang = new Studiengang($conn);
             if ($studi->studiengang->initAusDatenbank($row[7])) {
                 $studi->hatStudiengang = true;
             } else {
                 $studi->last_error = $studi->studiengang->getLastError();
                 $studi->hatStudiengang = false;
             }
             return $studi;
         } else {
             $err->addError("Der Student mit Matrikelnummer {$matrnr} existiert nicht.");
         }
     } else {
         $err->addError("Ein Datenbankfehler ist aufgetreten. " . $conn->getLastError());
     }
     return false;
 }
 public static function enumGroessen(Connection $conn, ErrorQueue $err)
 {
     $q = new DBQuery("SELECT UnternehmensgroesseID, Mitarbeiterzahl, MindestName FROM unternehmensgroesse");
     if ($conn->isConnected()) {
         if ($result = $conn->executeQuery($q)) {
             return $result;
         } else {
             $err->addError("Datenbankfehler: " . $conn->getLastError());
         }
     } else {
         return false;
     }
 }