Index: trunk/info/info/alkisn/alkisbestnw.php
===================================================================
--- trunk/info/info/alkisn/alkisbestnw.php	(revision 416)
+++ trunk/info/info/alkisn/alkisbestnw.php	(revision 422)
@@ -7,13 +7,10 @@
 	Version:
 	2016-02-24 Version fuer norGIS-ALKIS-Import
-	2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermÃ¶glichen, Markierung der Sortierung
-	2017-06-01 Function "eigentuemer" ohne Parameter $con
-	2017-06-08 Validierung Eingabeparameter, Farbwechsel der Tabelle je GrundstÃŒck, Feinschliff und HTML-Profilierung
-	2017-10-09 SchlÃŒssel der Blattart bei berechtigten BlÃ€ttern, sauber filtern auf endet IS NULL
-	2018-04-23 Blatt und EigentÃŒmer in eine Tabelle.
-	2018-05-03 Anpassung an GrundstÃŒcksnachweis, kein Export fÃŒr fiktives Blatt
-	2018-11-09 Umstellung Full-Schema
-	2018-11-14 Korrektur zu Full-Schema
+	....
+	2020-02-20 Authentifizierung ausgelegert in Function darf_ich()
+	2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF']
+	2020-12-15 Input-Validation und Strict Comparisation (===)
 */
+ini_set("session.cookie_httponly", 1);
 session_start();
 $showkey="n"; $nodebug=""; // Var. initalisieren
@@ -21,13 +18,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('#^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";
+
 ?>
 <!doctype html>
@@ -47,7 +52,10 @@
 <body>
 <?php
+
+$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_alkisbestnw.php'");
@@ -69,5 +77,5 @@
 if (!$res) {
 	echo "\n<p class='err'>Fehler bei Grundbuchdaten.</p>";
-	if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}
+	if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}
 }
 if ($row = pg_fetch_assoc($res)) {
@@ -76,5 +84,5 @@
 	$blatt=ltrim($row["blatt"], "0");
 
-	echo "<p class='gbkennz'>ALKIS Bestand ".$row["bezirk"]." - ".$blatt."&nbsp;</p>"; // Balken
+	echo "<p class='balken gbkennz'>ALKIS Bestand ".$row["bezirk"]." - ".$blatt."&nbsp;</p>"; // Balken
 	echo "\n<h2>Grundbuch</h2>";
 	echo "\n<table class='outer'>" // Blatt UND Eigent.
@@ -112,5 +120,5 @@
 } else { // E I G E N T U E M E R
 	$n = eigentuemer($gmlid, true, ""); // MIT Adressen.
-	if ($n == 0) { // keine NamensNr, kein Eigentuemer
+	if ($n === 0) { // keine NamensNr, kein Eigentuemer
 		echo "\n<p class='err'>Keine Namensnummer gefunden.</p>"
 		."\n<p>Bezirk: ".$row["bezirk"].", Blatt: ".$blatt.", Blattart ".$blattkey." (".$blattart.")</p>";
@@ -179,5 +187,5 @@
 if (!$res) {
 	echo "\n<p class='err'>Fehler bei Buchung.</p>";
-	if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '". $gmlid."'</p>";}
+	if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}
 }
 $i=0;
@@ -202,5 +210,5 @@
 	$j = bnw_fsdaten($lfdnr, $gml_bs, $bart, $anteil, true, $bartkey, $bartstory); // return=Anzahl der FS
 	$fscnt=$fscnt + $j;
-	if ($j == 0) { //  k e i n e  Flurstuecke gefunden (Miteigentumsnteil usw.)
+	if ($j === 0) { //  k e i n e  Flurstuecke gefunden (Miteigentumsnteil usw.)
 		// Bei "normalen" Grundstuecken wurden hier Flurstuecksdaten gefunden und ausgegeben.
 		// Bei Miteigentumsanteil, Erbbaurecht usw. muss nach den "dienenden" Buchungsstellen gesucht werden, darauf sind die FS gebucht.
@@ -230,5 +238,5 @@
 		if (!$resan) {
 			echo "\n<p class='err'>Fehler bei 'andere Buchungsstelle'.</p>";
-			if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = '".$gml_bs."'</p>";}
+			if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gml_bs."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}
 		}
 
@@ -252,5 +260,5 @@
 			if (!$fbres) {
 				echo "\n<p class='err'>Fehler bei fiktivem Blatt.</p>";
-				if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}			
+				if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( str_replace("$1", "'".$gml_bsan."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}			
 			}
 			$b=0;
@@ -271,5 +279,5 @@
 			echo "\n<tr class='".$trclass."'>"
 				."\n\t<td id='bvnr".$lfdnr."'>"; // Sp.1 Erbbau BVNR, Sprungmarke
-					if($bvnr == $altbvnr) {	// gleiches Grundstueck
+					if($bvnr === $altbvnr) {	// gleiches Grundstueck
 						echo "&nbsp;"; // dann Anzeige unterdruecken
 					} else {
@@ -328,5 +336,5 @@
 			$a++;
 		}
-		if ($a == 0) {
+		if ($a === 0) {
 			echo "\n<tr class='".$trclass."'>"
 				."\n\t<td><span class='wichtig'>".$bvnr."</span></td>"
@@ -349,5 +357,5 @@
 echo "\n</table>";
 
-if ($i == 0) {
+if ($i === 0) {
 	echo "\n<p class='err'>Keine Buchung gefunden.</p>";
 } else {
@@ -379,10 +387,10 @@
 if (!$resb) {
 	echo "\n<p class='err'>Fehler bei 'Berechtigte Bl&auml;tter.</p>";
-	if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}
+	if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}
 }
 $b=0; // count: Buchungen / BlÃ€tter
 $zpaar=false;
 while($rowb = pg_fetch_assoc($resb)) {
-	if ($b == 0) { // Ueberschrift und Tabelle nur ausgeben, wenn etwas gefunden wurde
+	if ($b === 0) { // Ueberschrift und Tabelle nur ausgeben, wenn etwas gefunden wurde
 		echo "\n\n<h3><img src='ico/Grundbuch_zu.png' width='16' height='16' alt=''> Berechtigte Grundb&uuml;cher</h3>"
 		."\n<table class='outer'>"
@@ -443,5 +451,5 @@
 	$b++;
 }
-if ($b == 0) {
+if ($b === 0) {
 	if ($blattkey > 2000 ) { // Warnung nicht bei Grundbuchblatt 1000 und Katasterblatt 2000
 		echo "\n<p class='err'>Keine berechtigten Bl&auml;tter zu ".$blattart." (".$blattkey.") gefunden.</p>";
@@ -463,5 +471,5 @@
 }
 echo "&nbsp;\n</div>";
-footer($gmlid, $_SERVER['PHP_SELF']."?", "");
+footer($gmlid, selbstverlinkung()."?", "");
 ?>
 </body>
