fwrite(STDERR, "FTP Verbindungsaufbau zu " . $ftp["host"] . " ist fehlgeschlagen" . PHP_EOL); exit(1); } // Login mit Benutzername und Passwort $login_result = @ftp_login($conn_id, $ftp["username"], $ftp["password"]); // Verbindung überprüfen if (!$conn_id || !$login_result) { throw new Exception("Verbindungsaufbau zu zu " . $ftp["host"] . " mit Benutzername " . $ftp["username"] . " fehlgeschlagen."); } else { echo "Verbunden zu " . $ftp["host"] . " mit Benutzername " . $ftp["username"] . PHP_EOL; } // Auf Passive Nutzung umschalten @ftp_pasv($conn_id, true); // Lade Wetterdaten echo "Lade aktuelle Wetterwarnungen von dem Grundversorgungsdaten des DWD (Pfad: Verzeichnis " . $unwetterConfig["localFolder"] . ")" . PHP_EOL; $remoteFile = fetchUnwetterDaten($unwetterConfig, $conn_id); echo "... Auftrag ausgeführt!" . PHP_EOL . PHP_EOL; // FTP Verbindung schließen ftp_close($conn_id); // Prüfe welche Wetterwarnungen gelöscht werden können echo "Prüfe welche Wetterwarnung-Dateien nicht mehr benötigt werden und veraltet sind:" . PHP_EOL; cleanupUnwetterDaten($unwetterConfig, $remoteFile); echo "... Auftrag ausgeführt!" . PHP_EOL . PHP_EOL; // Verarbeite die lokalen Wetterwarnungen zu der JSON Datei für die Homepage echo "Verarbeite die XML Wetterwarnungen vom DWD für die eigene Homepage (JSON-Format):" . PHP_EOL; $forceWetterUpdate = parseWetterWarnung($unwetterConfig, $optFehlerMail); echo "... Auftrag ausgeführt!" . PHP_EOL . PHP_EOL; } catch (Exception $e) { // Fehler-Handling sendErrorMessage($optFehlerMail, $e->getMessage()); }
} if ($check_password === $user['password']) { // If they do, then we flip this to true $login_ok = true; } if ($login_ok) { unset($user['salt']); unset($user['password']); $_SESSION['user'] = $user; header("Location: " . $baseURL); die("Redirecting to: admin page"); } else { sendErrorMessage("Username not found or password is incorrect"); } } else { sendErrorMessage("Username not found or password is incorrect"); } } } include_once $serverPath . 'resources/templates/header.php'; ?> <div class="container-fluid"> <form action="index.php" method="post"> <div class="row"> <div class="col-md-6 col-md-offset-3" style="margin-top: 20px"> <div class="panel panel-default"> <div class="panel-heading"> <div class="panel-title">Login</div> </div> <div class="panel-body"> <div class="form-group">
<?php include_once $serverPath . 'utils/db/db_get.php'; if ($table) { if (!empty($_GET['get'])) { $get = $_GET['get']; if ($get == "public") { $constraints = ['public' => 1, 'approved' => 1]; if (!isset($columns)) { $columns = null; } $results = getSpecificDataWithConstraints($table, $columns, $constraints); echo json_encode($results); } else { if ($get == "my") { include_once $serverPath . 'utils/security/requireLogin.php'; $constraints = ['owner_id' => $_SESSION['user']['id']]; $results = getSpecificDataWithConstraints($table, $columns, $constraints); echo json_encode($results); } } } else { if (!empty($_GET['id'])) { include_once $serverPath . 'utils/security/canSee.php'; echo json_encode(findById($table, $_GET['id'])); } } } else { sendErrorMessage("No table set. Data cannot be retreived."); }
<!doctype html> <html ng-app="app"> <script type="text/javascript">var baseURL = "<?php echo $baseURL; ?> ";</script> <?php include_once $serverPath . 'resources/templates/header.php'; include_once $serverPath . 'resources/templates/menu.php'; ?> <script> var baseURL = "<?php echo $baseURL; ?> "; </script> <?php include_once $serverPath . 'utils/db/connect.php'; if (!empty($_GET['error'])) { sendErrorMessage($_GET['error']); }
$obj->load($availableWfsConfIds); $json = new Mapbender_JSON(); $output = $json->encode($obj->confArray); echo $output; } else { if ($command == "getSearchResults") { $wfs_conf_id = $_REQUEST["wfs_conf_id"]; $backlink = $_REQUEST["backlink"]; $frame = $_REQUEST["frame"]; $filter = $_REQUEST["filter"]; $url = $_REQUEST["url"]; $typename = $_REQUEST["typename"]; $destSrs = $_REQUEST["destSrs"]; $wfsConf = WfsConfiguration::createFromDb($wfs_conf_id); if (is_null($wfsConf)) { sendErrorMessage("Invalid WFS conf: " . $wfs_conf_id); } // append authorisation condition to filter $filter = checkAccessConstraint($filter, $wfs_conf_id); $admin = new administration(); $filter = administration::convertIncomingString($filter); $wfsId = $wfsConf->wfsId; $myWfsFactory = new UniversalWfsFactory(); $myWfs = $myWfsFactory->createFromDb($wfsId); $data = $myWfs->getFeature($typename, $filter, $destSrs); if ($data === null) { die('{}'); } if (defined("WFS_RESPONSE_SIZE_LIMIT") && WFS_RESPONSE_SIZE_LIMIT < strlen($data)) { die("Too many results, please restrict your search."); }
$wfs_conf_id = $_POST["wfs_conf_id"]; $method = $_POST["method"]; $geoJson = $_POST["geoJson"]; function sendErrorMessage($data) { $resObj = array(); $response = "error"; $resObj["errorMessage"] = $data; $resObj["response"] = $response; header("Content-Type:application/x-json"); $json = new Mapbender_JSON(); echo $json->encode($resObj); die; } $wfsConf = WfsConfiguration::createFromDb($wfs_conf_id); if (is_null($wfsConf)) { sendErrorMessage("Invalid WFS conf: " . $wfs_conf_id); } $myWfsFactory = new UniversalWfsFactory(); $myWfs = $myWfsFactory->createFromDb($wfsConf->wfsId); if (is_null($myWfs)) { sendErrorMessage("Invalid WFS: " . $wfsConf->wfsId); } $data = $myWfs->transaction($method, $wfsConf, $geoJson); if (is_null($data)) { sendErrorMessage("WFS didn't return any data."); } $resObj = $myWfs->parseTransactionResponse($data); header("Content-Type:application/x-json"); $json = new Mapbender_JSON(); echo $json->encode($resObj);
/** * Funktion zum herunterladen der für den angegebenen Landkreis vorhandenen Wetterwarnungen * * @param $config * @param $conn_id * @return array */ function fetchUnwetterDaten($config, $conn_id) { try { // Prüfe Existenz der lokalen Verzeichnisse if (!is_writable($config["localFolder"])) { throw new Exception("Fehler in fetchUnwetterDaten: Benötigte Verzeichnisse " . $config["localFolder"] . " ist nicht beschreibbar"); } // Datei-Array anlegen $arrDownloadList = array(); // FileStats Cache leeren clearstatcache(); $remoteFolder = $config["remoteFolder"]; // Versuche, in das benötigte Verzeichnis zu wechseln if (@ftp_chdir($conn_id, $remoteFolder)) { echo PHP_EOL . "Verarbeite Dateien in in folgendem Verzeichnis: " . ftp_pwd($conn_id) . PHP_EOL; } else { throw new Exception("Fehler in fetchUnwetterDaten: Verzeichniswechsel in '" . $remoteFolder . "' ist fehlgeschlagen."); } // Filtern der Dateinamen um nicht für alle den Zeitstempel ermittelen zu müssen $searchTime = new DateTime(); $searchTime->setTimezone(new DateTimeZone('GMT')); $fileFilter = $searchTime->format("Ymd"); // Verzeichnisliste auslesen und sortieren $arrFTPContent = ftp_nlist($conn_id, "."); if ($arrFTPContent === false) { throw new Exception("Fehler in fetchUnwetterDaten: Auslesen des Verezichnis " . $config["remoteFolder"] . " fehlgeschlagen."); } else { echo "-> Verzeichnisliste erfolgreich heruntergeladen" . PHP_EOL; } // Ermittle das Datum für die Dateien if (count($arrFTPContent) > 0) { echo PHP_EOL . "Erzeuge Download-Liste für " . ftp_pwd($conn_id) . ":" . PHP_EOL; foreach ($arrFTPContent as $filename) { // Filtere nach Landkreis-Array if (strpos($filename, $fileFilter) !== false) { // Übernehme Datei in zu-bearbeiten Liste if (preg_match('/^(?<Prefix>\\w_\\w{3}_\\w_\\w{4}_)(?<Datum>\\d{14})(?<Postfix>_\\w{3}_STATUS)(?<Extension>.zip)$/', $filename, $regs)) { $dateFileM = DateTime::createFromFormat("YmdHis", $regs['Datum'], new DateTimeZone("UTC")); if ($dateFileM === false) { $dateFileM->setTimezone(new DateTimeZone("Europe/Berlin")); $fileDate = ftp_mdtm($conn_id, $filename); $detectMode = "via FTP / Lesen des Datums fehlgeschlagen"; } else { $fileDate = $dateFileM->getTimestamp(); $detectMode = "via RegExp"; } } else { $fileDate = ftp_mdtm($conn_id, $filename); $detectMode = "via FTP / Lesen des Dateinamens fehlgeschlagen"; } echo $filename . " => " . date("d.m.Y H:i", $fileDate) . " (" . $detectMode . ")" . PHP_EOL; $arrDownloadList[$filename] = $fileDate; } } } // Dateiliste sortieren arsort($arrDownloadList, SORT_NUMERIC); array_splice($arrDownloadList, 1); if (count($arrDownloadList) > 0) { // Beginne Download echo PHP_EOL . "Starte den Download von der aktuellen Warn-Datei:" . PHP_EOL; foreach ($arrDownloadList as $filename => $filetime) { $localFile = $config["localFolder"] . DIRECTORY_SEPARATOR . $filename; foreach ($arrDownloadList as $filename => $filetime) { $localFile = $config["localFolder"] . DIRECTORY_SEPARATOR . $filename; // Ermittle Zeitpunkt der letzten Modifikation if (file_exists($localFile)) { // Zeitpunkt der letzten Veränderung der lokalen Datei speichern $localFileMTime = filemtime($localFile); } else { // Da keine lokale Datei existiert, Zeitpunkt in die Vergangenheit setzen $localFileMTime = -1; } $remoteFileMTime = $filetime; if ($remoteFileMTime != $localFileMTime) { // Öffne lokale Datei $handle = fopen($localFile, 'w'); if (ftp_fget($conn_id, $handle, $filename, FTP_BINARY, 0)) { if ($localFileMTime === -1) { echo "Datei " . $localFile . " wurde erfolgreich heruntergeladen." . PHP_EOL; } else { echo "Datei " . $localFile . " wurde erneut erfolgreich heruntergeladen (Lokal: " . date("d.m.Y H:i:s", $localFileMTime) . " / Remote: " . date("d.m.Y H:i:s", $remoteFileMTime) . ")." . PHP_EOL; } } else { echo "Datei " . $filename . " Download ist fehlgeschlagen. " . PHP_EOL; } // Schließe Datei-Handle fclose($handle); // Zeitstempel setzen mtime um identisch mit der Remote-Datei zu sein (für Cache-Funktion) touch($localFile, $remoteFileMTime); } else { echo "Datei " . $localFile . " existiert bereits lokal mit dem gleichen Zeitstempel." . PHP_EOL; } } } } // Dateiname zurückgeben return array_keys($arrDownloadList)[0]; } catch (Exception $e) { // Fehler-Handling $message = $e->getFile() . "(" . $e->getLine() . "): " . $e->getMessage(); sendErrorMessage($message); return array(); } }