Get the last error in the connection
public getLastError ( ) : Error | ||
return | Error | string |
/** * 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 überprü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änderung konnte nicht durchgeführt werden. " . $conn->getLastError(); return false; } } else { $this->last_error = "Keine Verbindung zur Datenbank."; return false; } }
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ä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
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ä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; } }
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; }
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; } }