Ignore:
Timestamp:
06/08/17 16:15:04 (7 years ago)
Author:
frank.jaeger
Message:

Überarbeitung der Buchauskunft: FS-Nachweis enthält optional die berechtigten Buchungen, Input-Validation, Styling, kleinere Korrekturen, HTML-Profilierung

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/info/info/alkisn/alkisexport.php

    r378 r387  
    2626                                Siehe Datei "x_classic2norgis.sql" in /OSGeo4W64/apps/alkis-import/postcreate.d/ 
    2727                                Sonderfall: Auch Export zu *allen* Straßen der Stadt ohne Filter "gmlid". 
     28        2017-06-08 Validierung Eingabeparameter 
     29 
     30ToDo: 
     31        - In Dateiname Straßenname statt gmlid verwenden? 
     32        - in alkislage.php fÃŒr den Typ "ohne Haunummer" den Export mit strasse und haus=o verlinken 
    2833*/ 
    2934 
     
    3237        // dass ggf. mehrere Lagebezeichnungen in eine Zelle der Tabelle passen. 
    3338        // FS >westAuf> Lage >> Katalog 
    34         $sql ="SELECT DISTINCT s.bezeichnung, l.hausnummer  
    35         FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(f.weistauf) 
    36         JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage  
    37         WHERE f.gml_id= $1 ORDER BY s.bezeichnung, l.hausnummer;"; 
     39        $sql ="SELECT DISTINCT s.bezeichnung, l.hausnummer " 
     40        ."FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(f.weistauf) " 
     41        ."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage " 
     42        ."WHERE f.gml_id= $1 ORDER BY s.bezeichnung, l.hausnummer;"; 
    3843 
    3944        $v=array($gmlid); 
     
    6166// HIER START // 
    6267 
    63 $gkz=''; $tabtyp = ''; $gemarkung=''; $gmlid=''; $haus=''; // mögliche Parameter initialisieren 
    64 $cntget = extract($_GET); // aktuelle Parameter aus URL auslesen 
     68$tabtyp='';  $haus=''; // mögliche Parameter initialisieren 
     69$cntget = extract($_GET); // Parameter in Variable umwandeln 
     70 
     71// strikte Validierung aller Parameter 
     72if (!isset($gmlid) or !preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 
     73if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 
     74if (isset($gemarkung)) { 
     75        if (!preg_match('#^[0-9]{4}$#', $gemarkung)) {die("Eingabefehler gemarkung");} 
     76} else { 
     77        $gemarkung=''; 
     78} 
     79if (!preg_match('#^[m|o]{0,1}$#', $haus)) {die("Eingabefehler haus");} 
     80if (!preg_match('#^[a-z]{0,10}$#', $tabtyp)) {die("Eingabefehler tabtyp");} 
     81 
    6582require_once("alkis_conf_location.php"); // Konfiguration laden 
    6683include("alkisfkt.php"); // Funktionen der ALKIS-Auskunft laden 
     
    7087                $tabtyp = 'gemarkung'; 
    7188        } else {  // Bei "gmlid" MUSS man zwingend die Tabelle dazu nennen 
    72                 $err="Fehler: Art des Suchfilters nicht angeben."; 
    73                 echo "\n".$err; exit ($err); 
     89                $err="\nFehler: Art des Suchfilters nicht angeben."; 
     90                exit ($err); 
    7491        } 
    7592} elseif ($tabtyp == 'gemarkung') { 
    7693        if ($gemarkung == '') { 
    77                 $err="Fehler: Gemarkungsnummer nicht angeben."; 
    78                 echo "\n".$err; exit ($err); 
     94                $err="\nFehler: Gemarkungsnummer nicht angeben."; 
     95                exit ($err); 
    7996        } 
    8097} 
     
    101118        } elseif ($haus == 'm' or $haus == 'o') { // Sonderfall 2 - alle mit/ohne Hausnummer, nur ÃŒber View "exp_csv_str" möglich 
    102119                if ($tabtyp != 'strasse') { 
    103                         $err="Fehler: Falsche Kombination Parameter tabtyp='".$tabtyp."' mit Wert fuer Haus."; 
    104                         echo "\n".$err; exit ($err); 
     120                        $err="\nFehler: Falsche Kombination Parameter tabtyp='".$tabtyp."' mit Wert fuer Haus."; 
     121                        exit ($err); 
    105122                } 
    106123                if ($haus == 'm') { // den Zusatzfilter m/o im Dateinamen dokumentieren 
     
    111128*/ 
    112129        } else { 
    113                 $err= "Fehler: Kein passender Wert fuer die Suche angegeben."; 
    114                 echo "\n".$err; exit ($err); 
     130                $err="\nFehler: Kein passender Wert fuer die Suche angegeben."; 
     131                exit ($err); 
    115132        } 
    116133} 
     
    129146        echo "\n".$err; exit($err); 
    130147} 
    131 pg_set_client_encoding($con, 'LATIN1'); // FÃŒr Excel kein UTF8 ausgeben 
    132  
    133 $viewname="exp_csv"; // Standard-View, ist in der Datenbank gespeichert 
     148pg_set_client_encoding($con, 'LATIN1'); // FÃŒr Excel kein UTF8 
     149 
     150$viewname="exp_csv"; // Standard-View, in der DB gespeichert 
    134151$v=array($gmlid); // Standard-Filter-Feld 
    135152 
     
    154171                break; 
    155172        default: 
    156                 $err= "Falscher Parameter '".$tabtyp."'"; 
    157                 echo "\n".$err; exit($err); 
     173                $err="\nFalscher Parameter '".$tabtyp."'"; 
     174                exit($err); 
    158175                break; 
    159176} 
     
    162179$sql="SELECT * FROM ".$viewname." WHERE ".$filter." = $1 "; 
    163180 
    164 if ($haus != '') { // nur FS mit/ohne verschlÃŒsselter Lagebezeichnung 
     181if ($haus == 'm' or $haus == 'o') { // nur FS mit/ohne verschl. Lagebez. 
    165182        if ($gmlid == '') { // m/o-Filter als einziger Filter 
    166183                $sql="SELECT * FROM ".$viewname." WHERE fall='".$haus."' "; // Ersetzen 
     
    169186                // - Sonst Ausgabe von Rand-FlurstÃŒcken (bei geometrischer Filterung des NBA-Verfahrens) 
    170187                // - Sonst ggf. Ausgabe Kreisgebiet 
    171         } else { // als zusÀtzlicher Filter  
     188        } else { // als zusÀtzlicher Filter AND 
    172189                $sql.="AND fall='".$haus."' "; // m/o-Filter AnhÀngen 
    173190        } 
     
    177194$res=pg_execute("", $v); 
    178195if (!$res) { 
    179         $err= "Fehler bei Datenbankabfrage"; 
    180         echo "\n".$err; exit($err); 
     196        $err="\nFehler bei Datenbankabfrage"; 
     197        exit($err); 
    181198} 
    182199$i=1; // Kopfzeile zÀhlt mit 
     
    254271        } else {  
    255272                $adresse=$row["strasse"]." ".$row["hausnummer"].", ".$row["plz"]." ".$ort; 
    256                 $land=$row["land"]; // nur andere LÀnder anzeigen 
     273                $land=$row["land"]; // nur andere Laender anzeigen 
    257274                if (($land != "DEUTSCHLAND") and ($land != "")) { 
    258275                        $adresse.=" (".$land.")"; 
     
    286303pg_free_result($res); 
    287304if ($i == 1) { // nur Kopf 
    288         $err= "Kein Treffer fuer gml_id='".$gmlid."'"; 
    289         echo "\n".$err; exit ($err); 
     305        $err="\nKein Treffer fuer gml_id='".$gmlid."'"; 
     306        exit ($err); 
    290307} 
    291308pg_close($con); 
Note: See TracChangeset for help on using the changeset viewer.