Index: trunk/info/info/alkisn/alkislage.php
===================================================================
--- trunk/info/info/alkisn/alkislage.php	(revision 412)
+++ trunk/info/info/alkisn/alkislage.php	(revision 422)
@@ -7,10 +7,8 @@
 	Version:
 	2016-02-24 Version fuer norGIS-ALKIS-Import
-	2016-03-14 Korrekturen
-	2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermÃ¶glichen
-	2017-06-08 Validierung Eingabeparameter, gestreifte Tabelle, Feinkorrekturen
-	2017-10-09 Sauber filtern auf endet IS NULL
-	2018-04-23 &nodebug
-	2018-11-09 Umstellung Full-Schema
+	....
+	2020-02-20 Authentifizierung ausgelagert in Function darf_ich()
+	2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF']
+	2020-12-15 Input-Validation und Strict Comparisation (===)
 
 	ToDo:
@@ -20,4 +18,5 @@
 	Mit FlÃ€chen-Verschneidung auch weitere FS anzeigen?
 */
+ini_set("session.cookie_httponly", 1);
 session_start();
 $showkey="n"; $nodebug=""; // Var. aus Parameter initalisieren
@@ -25,14 +24,21 @@
 
 // strikte Validierung aller Parameter
-if (!isset($gmlid) or !preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");}
-if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");}
+if (isset($gmlid)) {
+	if (!preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");}
+} else {
+	die("Fehlender Parameter");
+}
+if (isset($gkz)) {
+	if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");}
+} else {
+	die("Fehlender Parameter");
+}
 if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");}
-if ($showkey == "j") {$showkey=true;} else {$showkey=false;}
+if ($showkey === "j") {$showkey=true;} else {$showkey=false;}
 if (!preg_match('#^[m|p|o]{1}$#', $ltyp)) {die ("Eingabefehler ltyp");}
 if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");}
 
-require_once("alkis_conf_location.php");
-if ($auth == "mapbender") {require_once($mapbender);}
-include("alkisfkt.php");
+include "alkis_conf_location.php";
+include "alkisfkt.php";
 
 switch ($ltyp) {
@@ -59,7 +65,10 @@
 <body>
 END;
+
+$erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); }
+
 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten.
 // Manuell an die URL anfÃŒgen, wirkt nur temporÃ€r und wird nicht in Links weiter gereicht.
-if ($nodebug == "j") {$debug=0;} 
+if ($nodebug === "j") {$debug=0;} 
 
 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkislage.php'");
@@ -94,5 +103,5 @@
 if (!$res) {
 	echo "\n<p class='err'>Fehler bei Lagebezeichnung.</p>";
-	if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}
+	if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}
 }
 
@@ -117,5 +126,5 @@
 			$kennz.=$hsnr;
 			$untertitel="Hauptgeb&auml;ude mit Hausnummer";
-			echo "\n<p class='lage'>ALKIS Lagebezeichnung mit Hausnummer ".$kennz."&nbsp;</p>"; // Balken
+			echo "\n<p class='balken lage'>ALKIS Lagebezeichnung mit Hausnummer ".$kennz."&nbsp;</p>"; // Balken
 			$osub="";
 		break;
@@ -125,5 +134,5 @@
 			$kennz.=$pseu."-".$lfd;
 			$untertitel="NebengebÃ€ude mit laufender Nummer (Lagebezeichnung mit Pseudonummer)";
-			echo "\n<p class='lage'>ALKIS Lagebezeichnung NebengebÃ€ude ".$kennz."&nbsp;</p>"; // Balken
+			echo "\n<p class='balken lage'>ALKIS Lagebezeichnung NebengebÃ€ude ".$kennz."&nbsp;</p>"; // Balken
 			$osub="";
 		break;
@@ -135,10 +144,10 @@
 				$kennz=" - ".$unver;
 				$untertitel="Gewanne (unverschl&uuml;sselte Lage)";
-				echo "\n<p class='lage'>ALKIS Lagebezeichnung Ohne Hausnummer ".$kennz."&nbsp;</p>"; // Balken
+				echo "\n<p class='balken lage'>ALKIS Lagebezeichnung Ohne Hausnummer ".$kennz."&nbsp;</p>"; // Balken
 			} else {
 				$osub="s"; // Sub-Typ Strasse (ohne HsNr)
 				$kennz.=$unver;
 				$untertitel="Stra&szlig;e ohne Hausnummer";
-				echo "\n<p class='lage'>ALKIS Lagebezeichnung Ohne Hausnummer ".$kennz."&nbsp;</p>"; // Balken
+				echo "\n<p class='balken lage'>ALKIS Lagebezeichnung Ohne Hausnummer ".$kennz."&nbsp;</p>"; // Balken
 			}
 		break;
@@ -147,5 +156,5 @@
 	echo "\n<p class='err'>Fehler! Kein Treffer fuer Lagebezeichnung mit gml_id='".$gmlid."'</p>";
 	if ($debug > 2) {
-		echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";
+		echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";
 	}
 	echo "\n</body>\n</html>";
@@ -174,5 +183,5 @@
 				break;
 				case "o": //"Ohne HsNr"
-					if ($osub == "g") {
+					if ($osub === "g") {
 						echo "\n\t\t\t<td class='head'>unverschl&uuml;sselte Lage</td>";
 					}
@@ -200,5 +209,5 @@
 				echo "\n\t\t\t<td title='Stra&szlig;e'>";
 				if ($showkey and $osub != "g") {echo "<span class='key'>".$lage."</span><br>";}
-				if ($ltyp == "o") {
+				if ($ltyp === "o") {
 					echo "<span class='wichtig'>".$snam."</span>";
 				} else {
@@ -217,5 +226,5 @@
 				break;
 				case "o":
-					if ($osub == "g") {
+					if ($osub === "g") {
 						echo "\n\t\t\t<td title='Gewanne'><span class='wichtig'>".$unver."</span></td>";
 					}
@@ -243,5 +252,5 @@
 // ax_Flurstueck  >zeigtAuf>  ax_LagebezeichnungOhneHausnummer
 // ++ auch FlÃ€chenverschneidung?
-if ($ltyp <> "p") { // Pseudonummer linkt nur GebÃ€ude
+if ($ltyp != "p") { // Pseudonummer linkt nur GebÃ€ude
 	echo "\n\n<a id='fs'></a>\n<h3><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;cke</h3>"
 	."\n<p>mit dieser Lagebezeichnung.</p>";
@@ -261,5 +270,5 @@
 	if (!$resf) {
 		echo "\n<p class='err'>Fehler bei Flurst&uuml;ck.</p>";
-		if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}	
+		if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}	
 	}
 	echo "\n<table class='fs'>"
@@ -303,10 +312,10 @@
 // L A G E
 // andere Lage mit gleicher Hausnummer suchen
-if ($ltyp <> "o") { // nicht bei Gewanne (Ohne HsNr)
+if ($ltyp != "o") { // nicht bei Gewanne (Ohne HsNr)
 	echo "\n\n<a id='lage'></a>\n<h3><img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''> Lage</h3>"
 	."\n<p>Andere Lagebezeichnungen zur gleichen Hausnummer.</p>";
 	$whereclaus="WHERE land= $1 AND regierungsbezirk= $2 AND kreis= $3 AND gemeinde= $4 AND lage= $5 ";
 
-	$url=$_SERVER['PHP_SELF']."?gkz=".$gkz; // Basis
+	$url=selbstverlinkung()."?gkz=".$gkz; // Basis
 	if ($showkey) {$url.="&amp;showkey=j";}
 	$url.="&amp;gmlid=";
@@ -323,6 +332,6 @@
 			$res = pg_execute("", $v);
 			if (!$res) {
-				echo "\n<p class='err'>Fehler bei Nebengeb&auml;ude.<br>".$sql."</p>";
-				if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";}
+				echo "\n<p class='err'>Fehler bei Nebengeb&auml;ude.</p>";
+				if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} // 7 $-Parameter
 			}
 			$neb=0;
@@ -331,5 +340,5 @@
 				$neb++;
 			}
-			if ($neb == 0) {echo "keine";}
+			if ($neb === 0) {echo "keine";}
 			echo "</p>";
 		break;
@@ -349,5 +358,5 @@
 				$hg++;
 			}
-			if ($hg == 0) {echo "&nbsp;Kein Hauptgeb&auml;ude gefunden.";}
+			if ($hg === 0) {echo "&nbsp;Kein Hauptgeb&auml;ude gefunden.";}
 			echo "</p>";
 
@@ -360,5 +369,5 @@
 			if (!$res) {
 				echo "\n<p class='err'>Fehler bei Nebengeb&auml;ude.</p>";
-				if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";}			
+				if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} // 7 $-Parameter		
 			}
 			$neb=0;
@@ -367,5 +376,5 @@
 				$neb++;
 			}
-			if ($neb == 0) {echo "keine";}
+			if ($neb === 0) {echo "keine";}
 			echo "</p>";
 		break;
@@ -374,5 +383,5 @@
 
 // G E B A E U D E
-if ($ltyp <> "o") { // OhneHsNr linkt nur Flurst.
+if ($ltyp != "o") { // OhneHsNr linkt nur Flurst.
 	echo "\n\n<a id='geb'></a>\n<h3><img src='ico/Haus.png' width='16' height='16' alt=''> Geb&auml;ude</h3>"
 	."\n<p>mit dieser Lagebezeichnung.</p>";
@@ -396,5 +405,5 @@
 	if (!$res) {
 		echo "\n<p class='err'>Fehler bei Geb&auml;ude.</p>";
-		if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}
+		if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}
 	}
 	echo "\n<table class='geb'>"
@@ -444,5 +453,5 @@
 </div>
 
-<?php footer($gmlid, $_SERVER['PHP_SELF']."?", "&amp;ltyp=".$ltyp); ?>
+<?php footer($gmlid, selbstverlinkung()."?", "&amp;ltyp=".$ltyp); ?>
 
 </body>
