<?php
// $test="ja";
/*
$testzeit[0][1]++;
$testzeit[$testzeit[0][1]]["was"] = "ServerVar. Request_Time";
$testzeit[$testzeit[0][1]]["wann"] = $_SERVER['REQUEST_TIME'];
*/

$testzeit[0][1]++;
$testzeit[$testzeit[0][1]]["was"] = "Start IndexRewrite";
$testzeit[$testzeit[0][1]]["wann"] = microtime(true);

date_default_timezone_set("Europe/Berlin");

error_reporting(E_ALL ^ E_NOTICE);

if ($test == "ja") ini_set('display_errors', 'On');        
else ini_set('display_errors', 'Off');        
ob_start();

// echo "suchaufruf: ".$_POST["suchaufruf"];

// ACHTUNG: Header content-type und charset wird fÃ¼r die Seiten nocheinmal in globals/config festgelegt.

$uri = $_SERVER["REQUEST_URI"];

$uri = str_ireplace(".htm","",str_ireplace(".html","",$uri));
$testuri = str_ireplace("?test=ja","",$uri);
$testuri = str_ireplace("&test=ja","",$testuri);

if ($uri != $testuri)
{	$uri = $testuri;
//	$test = "ja";
}	// quick and dirty: test = ja gibt performance-checks aus


if (stripos($uri,"insert") !== FALSE OR stripos($uri,"select") !== FALSE OR stripos($uri,"delete") !== FALSE)
{	header('HTTP/1.1 404 Gefressen');
	echo "<h1>Not Found</h1>The requested URL ".$uri." was not found on this server.<br><br><br><h1>Nicht Gefunden</h1>Die aufgerufene URL ".$uri." wurde auf dem Server nicht gefunden.<br>";

	include_once("globals/sqlfunktionen.php");
	include_once("globals/funktionen.php");
	$mysql = mysqlanbindung("");
	mysqli_set_charset($mysql,"utf8",$mysql);

	$abfrage = "SELECT sblordnung,sblipvon,sbleintrag,sblreaktion,sblbeschreibung
			FROM sessbotlist 
			WHERE sblordnung = '3300' AND sblipvon = '".$_SERVER['REMOTE_ADDR']."' AND sbleintrag = 'maliciousbot' 
					AND sblreaktion = 'sperren' AND sblbeschreibung = 'automatischer Eintrag'
			";
	$altebotdaten = mydatenfrei($mysql,$abfrage,"");
	
	if ($altebotdaten[0][1] <= 0)
	{
		$sqlanweisung = "INSERT INTO sessbotlist 
					(sblordnung,sblipvon,sbleintrag,sblreaktion,sblbeschreibung)
					VALUES
					(3300,'".$_SERVER['REMOTE_ADDR']."','maliciousbot','sperren','automatischer Eintrag')
				";
		$erfolg = mysqli_query($mysql,$sqlanweisung);
	}
	exit;
}



$hilfsuriarray = explode("?",$uri);
$uri = $hilfsuriarray[0];

$uriarray = explode("/",$uri);

$subdomain = explode(".",$_SERVER["HTTP_HOST"]);
if (strtolower($subdomain[0]) == "www")
{	$subdomain[0] = $subdomain[1];
}

/*
$subdomain = explode(".",$_SERVER["SERVER_NAME"]);

if (strtolower(trim($subdomain[0])) == "turcica")
{	echo "<img src = 'http://turcica.museum-kassel.de/turcica/intern.png'>";
	exit;
}

if ($subdomain[0] != $_SERVER["SERVER_NAME"])
{   $uriarray[1] = $subdomain[0];
	if (trim($uri) == "")
	{   header("Location: http://".$uriarray[1].".museum-kassel.de/".$uriarray[1]."/");
	    exit;  		
 	}
//	echo $uriarray[1];
}
//	echo $uriarray[1];
*/


if (str_replace("http:","",strtolower($uri)) != strtolower($uri))
{   header('HTTP/1.1 301 Neuer Wohnsitz');
    header('Location:'.$uri);
    exit();
}
elseif (!is_dir($uriarray[1]) AND trim($uriarray[1]) != "onlinekataloge" AND !is_dir($subdomain[0]))
{   header('HTTP/1.1 404 Gefressen');
    echo "<h1>Not Found</h1>The requested page ".$uri." was not found on this server.<br><br><br><h1>Nicht Gefunden</h1>Die aufgerufene Seite ".$uri." wurde auf dem Server nicht gefunden.<br>";
    exit();
}

$zahluri = count($uriarray);

$vorzeichen = "";
for ($i = 1; $i <= ($zahluri-2); $i++)
{   $vorzeichen .= "../";
}
if ($herkunftsubdomain == "ja")
{   // $vorzeichen .= "../";
}
$vorzeichen .= "onlinekataloge/";

$urilast = explode("?",$uriarray[($zahluri-1)]);

$uri9 = $uriarray[($zahluri-9)]."/".$uriarray[($zahluri-8)]."/".$uriarray[($zahluri-7)]."/".$uriarray[($zahluri-6)]."/".$uriarray[($zahluri-5)]."/".$uriarray[($zahluri-4)]."/".$uriarray[($zahluri-3)]."/".$uriarray[($zahluri-2)]."/".$uriarray[($zahluri-1)];
$uri8 = $uriarray[($zahluri-8)]."/".$uriarray[($zahluri-7)]."/".$uriarray[($zahluri-6)]."/".$uriarray[($zahluri-5)]."/".$uriarray[($zahluri-4)]."/".$uriarray[($zahluri-3)]."/".$uriarray[($zahluri-2)]."/".$uriarray[($zahluri-1)];
$uri7 = $uriarray[($zahluri-7)]."/".$uriarray[($zahluri-6)]."/".$uriarray[($zahluri-5)]."/".$uriarray[($zahluri-4)]."/".$uriarray[($zahluri-3)]."/".$uriarray[($zahluri-2)]."/".$uriarray[($zahluri-1)];
$uri6 = $uriarray[($zahluri-6)]."/".$uriarray[($zahluri-5)]."/".$uriarray[($zahluri-4)]."/".$uriarray[($zahluri-3)]."/".$uriarray[($zahluri-2)]."/".$uriarray[($zahluri-1)];
$uri5 = $uriarray[($zahluri-5)]."/".$uriarray[($zahluri-4)]."/".$uriarray[($zahluri-3)]."/".$uriarray[($zahluri-2)]."/".$uriarray[($zahluri-1)];
$uri4 = $uriarray[($zahluri-4)]."/".$uriarray[($zahluri-3)]."/".$uriarray[($zahluri-2)]."/".$uriarray[($zahluri-1)];
$uri3 = $uriarray[($zahluri-3)]."/".$uriarray[($zahluri-2)]."/".$uriarray[($zahluri-1)];
$uri2 = $uriarray[($zahluri-2)]."/".$uriarray[($zahluri-1)];
$uri1 = $uriarray[($zahluri-1)];

for ($i = 1; $i <= 10; $i++)
{   if ($uriarray[$i] == "0")
         $uriarray[$i] = "";
}

if (trim($subdomain[0]) != trim($uriarray[1]))
{
	$katalog = $subdomain[0];    // Katalogname (= Verzeichnis)
	$objekt = $uriarray[1];     // ObjId
	$zusatzid = $uriarray[2];  // KueId
	$auswahl = $uriarray[3];    // KatalogabhÃ¤ngige Auswahl
	$aufgabe = $uriarray[4];    // Eigentlich: Sammlung
	$funktion = $uriarray[5];   // Funktion ist seitenabhÃ¤ngig
	$param1 = $uriarray[6];   // Parameter 1 ist seitenabhÃ¤ngig
	$param2 = $uriarray[7];   // Parameter 2 ist seitenabhÃ¤ngig
	$seite = $uriarray[8];
}
else
{
	$katalog = $uriarray[1];    // Katalogname (= Verzeichnis)
	$objekt = $uriarray[2];     // ObjId
	$zusatzid = $uriarray[3];  // KueId
	$auswahl = $uriarray[4];    // KatalogabhÃ¤ngige Auswahl
	$aufgabe = $uriarray[5];    // Eigentlich: Sammlung
	$funktion = $uriarray[6];   // Funktion ist seitenabhÃ¤ngig
	$param1 = $uriarray[7];   // Parameter 1 ist seitenabhÃ¤ngig
	$param2 = $uriarray[8];   // Parameter 2 ist seitenabhÃ¤ngig
	$seite = $uriarray[9];
}

$testzeit[0][1]++;
$testzeit[$testzeit[0][1]]["was"] = "Nach Uri-Zerlegung";
$testzeit[$testzeit[0][1]]["wann"] = microtime(true);

// ++++++++++++++++++++++++++++++ Weiterleitungen +++++++++
// Für Bestände mit zweiter Adresse (elfenbein... = ivory...) 
// und alte, nicht mehr gültige Adressen gibt es hier 'Umbuchungen'.
// Die 'Neben-Links' funktionieren weiter, werden aber auf den gültigen
// Katalog umgeleitet.

if (strtolower(trim($katalog)) == "malerei18jh")	$katalog = "altemeister";
if (strtolower(trim($katalog)) == "ivory")	$katalog = "elfenbein";
if (strtolower(trim($katalog)) == "klebebandprojekt")	$katalog = "kupferstichkabinett";

if (strtolower(trim($katalog)) == "testdatenbank")	
{	$test = "ja";
	$katalog = "datenbank";
}


/* ++++++++++++++++++++++++++++++ KatalogabhÃ¤ngige Auswahl +++++++++

Allgemein lÃ¤uft die Auswahl Ã¼ber KÃ¼nstler:
- Objektliste wird Ã¼ber den Eintrag in $kuenstler ausgewÃ¤hlt
KatalogabhÃ¤ngige MÃ¶glichkeiten fÃ¼r Auswahl:
- Objektliste wird Ã¼ber den Eintrag $auswahl ausgewÃ¤hlt
- $auswahl schrÃ¤nkt die Zahl der KÃ¼nstler ein (z.B. Malerei 18. Jhd.), 
    dann erfolgt Auswahl der Objektliste wie vor Ã¼ber KÃ¼nstler
*/

/* ++++++++++++++++++++++++++++++ Liste vergebener Funktionen +++++++++

   0 -                   - ohne Funktion bzw. Grundfunktion

Erweiterte Suche:  0 - Suche nach Objekt
                   1 - Suche nach Kuenstler

Suchergebnis: Art der Listendarstellung:
                   0 - Bild mit Kurztext
                   1 - reine Namensliste
                   2 - reine Bilderliste

Objektansicht:   Kriterien zum BlÃ¤ttern
                 (Art des BlÃ¤tterns + Nummer im Set)
                   s1... - Suchergebnis
                   k1... - KÃ¼nstler/Beteiligter
                   o1... - Katalogobjektliste
                   w1... - Warenkorb (nicht implementiert (yet)

+++++++++++++++++++++++++++++++++ Liste verwendeter Parameter 1 / 2 +++

Suchergebnis:      p1 - zum UmblÃ¤ttern die aktuelle Seite
                           (wobei intern 0 = 1 gilt)
                   p2 - Sortierung des Ergebnisses
                            0 = Inv. Nr.
                            1 = KÃ¼nstlerSortierung
                            2 = Titel/Bezeichnung
                            3 = Datierung
				4 = Katalogsortierung

Objektansicht:     p1 - Bild, dass als Vorschaubild gezeigt wird
                            0 ...  = Objektbilder
                            v1 ... = Vergleichsbilder
                            o1 ... = verknÃ¼pfte Objekte

                   p2 - Sortierung des Ergebnisses
                            0 = Inv. Nr.
                            1 = KÃ¼nstlerSortierung
                            2 = Titel/Bezeichnung
                            3 = Datierung
				4 = Katalogsortierung

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
*/

// LINK:
// "/".$katalog."/".$objekt."/".$zusatzid."/".$auswahl."/".$aufgabe."/".$funktion."/".$param1."/".$param2."/".$seite.".html"
// '/'.$katalog.'/'.$objekt.'/'.$zusatzid.'/'.$auswahl.'/'.$aufgabe.'/'.$funktion.'/'.$param1.'/'.$param2.'/'.$seite.'.html'

// print_r ($uriarray);
// echo $katalog." - ";
// echo $objekt." - ";
// echo $zusatzid." - ";
// echo $auswahl." - ";
// echo $aufgabe." - ";
// echo $funktion." - ";
// echo $param1." - ";
// echo $param2." - ";
// echo $seite." - ";

$viaerrordoc = "ja";

$testzeit[0][1]++;
$testzeit[$testzeit[0][1]]["was"] = "Vor Senden des Header";
$testzeit[$testzeit[0][1]]["wann"] = microtime(true);

if (str_replace(".jpg","",$uri) != $uri)
{   header('HTTP/1.0 200 OK');
    header('Content-Type: image/jpeg');
    if (is_file($uri8)) readfile($uri8);
    if (is_file($uri7)) readfile($uri7);
    if (is_file($uri6)) readfile($uri6);
    if (is_file($uri5)) readfile($uri5);
    if (is_file($uri4)) readfile($uri4);
    if (is_file($uri3)) readfile($uri3);
    if (is_file($uri2)) readfile($uri2);
    if (is_file($uri1)) readfile($uri1);
}
elseif (str_replace(".png","",$uri) != $uri)
{   header('HTTP/1.0 200 OK');
    header('Content-Type: image/png');
    if (is_file($uri4)) readfile($uri4);
    if (is_file($uri3)) readfile($uri3);
    if (is_file($uri2)) readfile($uri2);
    if (is_file($uri1)) readfile($uri1);
}
elseif (str_replace(".gif","",$uri) != $uri)
{   header('HTTP/1.0 200 OK');
    header('Content-Type: image/gif');
    if (is_file($uri4)) readfile($uri4);
    if (is_file($uri3)) readfile($uri3);
    if (is_file($uri2)) readfile($uri2);
    if (is_file($uri1)) readfile($uri1);
}
elseif (str_replace(".swf","",$uri) != $uri)
{   header('HTTP/1.0 200 OK');
    header('Content-Type: application/x-shockwave-flash');
    if (is_file($uri4)) readfile($uri4);
    if (is_file($uri3)) readfile($uri3);
    if (is_file($uri2)) readfile($uri2);
    if (is_file($uri1)) readfile($uri1);
}
elseif (str_replace(".css","",$uri) != $uri)
{   header('HTTP/1.0 200 OK');
    header('Content-type: text/css; charset=utf-8');
	
    if (is_file($uri4)) readfile($uri4);
    if (is_file($uri3)) readfile($uri3);
    if (is_file($uri2)) readfile($uri2);
    if (is_file($uri1)) readfile($uri1);
}
elseif (str_replace(".js","",$uri) != $uri)
{   header('HTTP/1.0 200 OK');
    header('Content-type: text/javascript; charset=utf-8');
    if (is_file($uri4)) readfile($uri4);
    if (is_file($uri3)) readfile($uri3);
    if (is_file($uri2)) readfile($uri2);
    if (is_file($uri1)) readfile($uri1);
}
elseif (str_replace(".xml","",$uri) != $uri)
{   header('HTTP/1.0 200 OK');
    header('Content-type: text/xml; charset=utf-8');
    if (is_file($uri4)) readfile($uri4);
    if (is_file($uri3)) readfile($uri3);
    if (is_file($uri2)) readfile($uri2);
    if (is_file($uri1)) readfile($uri1);
}
elseif (str_replace("iif","",$uri) != $uri)
{   header('HTTP/1.0 200 OK');
    header('Content-Type:application/ld+json');
    if (is_file($uri4)) include($uri4);
    if (is_file($uri3)) include($uri3);
    if (is_file($uri2)) include($uri2);
    if (is_file($uri1)) include($uri1);
}
elseif (str_replace("bildbetrachter.php","",$uri) != $uri)
{   header('HTTP/1.0 200 OK');
	header('Content-Type: text/html; charset=utf-8');
    include("bildbetrachter.php");
}
else
{   header('HTTP/1.0 200 OK');
	header('Content-Type: text/html; charset=utf-8');

$testzeit[0][1]++;
$testzeit[$testzeit[0][1]]["was"] = "Vor Aufruf Index.php";
$testzeit[$testzeit[0][1]]["wann"] = microtime(true);

	include("index.php");

$testzeit[0][1]++;
$testzeit[$testzeit[0][1]]["was"] = "Nach Ende Index.php";
$testzeit[$testzeit[0][1]]["wann"] = microtime(true);

}

$testzeit[0][1]++;
$testzeit[$testzeit[0][1]]["was"] = "Nach Header";
$testzeit[$testzeit[0][1]]["wann"] = microtime(true);

$htmlausgabe = ob_get_contents();

$testzeit[0][1]++;
$testzeit[$testzeit[0][1]]["was"] = "Nach ob_get_contents";
$testzeit[$testzeit[0][1]]["wann"] = microtime(true);

ob_end_clean();

$testzeit[0][1]++;
$testzeit[$testzeit[0][1]]["was"] = "Nach ob_end_clean";
$testzeit[$testzeit[0][1]]["wann"] = microtime(true);

// $a = $uriarray[1]."/".$uriarray[2]."/".$uriarray[3]."/".$uriarray[4]."/".$uriarray[5]."/".$uriarray[6]."/".$uriarray[7]."/";
// $b = "onlinekataloge";
$a = "/".$katalog."/";
$b = "/";
$htmlausgabe = str_replace($a,$b,$htmlausgabe);

$a = "/onlinekataloge/";
$b = "/onlinekataloge/".$katalog."/";

$htmlausgabe = str_replace($a,$b,$htmlausgabe);

/*
if ($test == "ja")
{
	$a = ".html";
	$b = ".html?test=ja";

	$htmlausgabe = str_replace($a,$b,$htmlausgabe);
}
*/

echo $htmlausgabe;

$testzeit[0][1]++;
$testzeit[$testzeit[0][1]]["was"] = "Nach HTML-Ausgabe";
$testzeit[$testzeit[0][1]]["wann"] = microtime(true);

if ($test == "ja" AND $katalog != "magazin" AND $_SESSION["sessaddress"] == "mail.museum-kassel.de")
{
	$startzeit = $testzeit[1]["wann"];
	$endzeit = microtime(true);
	$testzeit[0]["wann"] = $startzeit;
	
	echo $katalog;

	echo "<table cellpadding = 6;>";
	echo "<tr><td>Was</td><td>Wann</td><td>Zeitdauer</td><td>Seit Start</td><td>Bis Ende</td></tr>";
	for ($i = 1; $i <= $testzeit[0][1]; $i++)
	{	
		echo "<tr><td>".$testzeit[$i]["was"]."</td>
			<td>".number_format($testzeit[$i]["wann"],6)."</td>
			<td>".number_format(($testzeit[$i]["wann"] - $testzeit[($i-1)]["wann"]),6)."</td>
			<td>".number_format(($testzeit[$i]["wann"] - $testzeit[0]["wann"]),6)."</td>
			<td>".number_format(($endzeit - $testzeit[$i]["wann"]),6)."</td></tr>";
	}
	echo "</table>";

	echo "<pre>";
	echo "\r\nUI-PARAMETER\r\n";
	Print_r($uriarray);
	echo "\r\nSUBDOMAIN\r\n";
	Print_r($subdomain);
	echo "\r\nGET\r\n";
	Print_r($_GET);
	echo "\r\nPOST\r\n";
	Print_r($_POST);
	echo "\r\nSESSION\r\n";
	Print_r($_SESSION);
	echo "</pre>";
}
?>