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());
}
Esempio n. 2
0
            }
            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">
Esempio n. 3
0
<?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.");
}
Esempio n. 4
0
<!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();
    }
}