svn commit: r125 - trunk/mapbender/owsproxy/http/index.php

uli at osgeo.org uli at osgeo.org
Fri Apr 21 16:41:47 EDT 2006


Author: uli
Date: 2006-04-21 20:41:47+0000
New Revision: 125

Added:
   trunk/mapbender/owsproxy/http/index.php
      - copied, changed from r120, /trunk/mapbender/owsproxy/index.php

Log:
in process
returns map


Copied: trunk/mapbender/owsproxy/http/index.php (from r120, /trunk/mapbender/owsproxy/index.php)
Url: https://mapbender.osgeo.org/source/browse/mapbender/trunk/mapbender/owsproxy/http/index.php?view=diff&rev=125&p1=/trunk/mapbender/owsproxy/index.php&p2=trunk/mapbender/owsproxy/http/index.php&r1=120&r2=125
==============================================================================
--- /trunk/mapbender/owsproxy/index.php	(original)
+++ trunk/mapbender/owsproxy/http/index.php	2006-04-21 20:41:47+0000
@@ -1,23 +1,62 @@
 <?php
-// conf
+require("../../conf/mapbender.conf");
+require("../../http/classes/class_administration.php");
+
+/***** conf *****/
 $imageformats = array("image/png","image/gif","image/jpeg", "image/jpg");
+/***** conf *****/
+
 
-// variablen auslesen
-#print_r($_REQUEST);
-$myVar = array_keys($_REQUEST);
-for($i=0; $i<count($myVar); $i++){
-	$tmp[$i] = strtolower($myVar[$i]);
-	$$tmp[$i]  = $_REQUEST[$myVar[$i]];
+$myKeys = array_keys($_REQUEST);
+for($i=0; $i<count($myKeys); $i++){
+	$tmp[$i] = strtolower($myKeys[$i]);
+	$$tmp[$i]  = $_REQUEST[$myKeys[$i]];
 }
-// session überprüfen
+
+// check session
 session_id($_REQUEST["sid"]);
 session_start();
 if($_SESSION['mb_user_ip'] != $_SERVER['REMOTE_ADDR']){
-	throwE(array("No Sessiondate availabel.","Permission denied.","Please authenticate."));	
+	throwE(array("No session data available.","Permission denied.","Please authenticate."));
+	die();	
+}
+
+// permission validieren
+$n = new administration();
+$myguis = $n->getGuisByPermission($_SESSION["mb_user_id"]);
+$mywms = $n->getWmsByOwnGuis($myguis);
+$con = db_connect(DBSERVER,OWNER,PW);
+db_select_db(DB,$con);
+$sql = "SELECT * FROM wms WHERE wms_owsproxy = $1";
+$v = array($wms);
+$t = array("s");
+$res = db_prep_query($sql, $v, $t);
+if($row = db_fetch_array($res)){
+	$wms_id = $row["wms_id"];	
+}
+else{
+	throwE(array("No wms data available."));
+	die();	
+}
+
+if(!in_array($wms_id, $mywms)){
+	throwE(array("Permission denied."));
+	die();
+}
+
+/*************  prepare the response ************/
+if(strtolower($request) == "getmap"){
+	$or = $n->checkURL($row["wms_getmap"]);
+	$or = completeURL($or);
+	sendMap($or);
+}
+else if(strtolower($request) == "getfeatureinfo"){
+	echo $row["wms_getfeatureinfo"];
+}
+else if(strtolower($request) == "getcapabilities"){
+	echo $row["wms_getcapabilities"];
 }
-// Datenbanküberprüfung vornehmen
 
-// onlineresource ermitteln
 
 function throwE($e){
 	global $format, $imageformats;
@@ -38,10 +77,44 @@
 	for($i=0; $i<count($e); $i++){
 		ImageString ($image, 3, 5, $i*20, $e[$i], $text_color);
 	}
-	header("Content-Type: image/png"); 
-	imagepng($image);
+	responseImage($image);
 }
 function throwText($e){
 	echo join(" ", $e);
 }
+function responseImage($im){
+	global $format;
+	if($format == 'image/png'){header("Content-Type: image/png");}
+	if($format == 'image/jpeg' || $format == 'image/jpg'){header("Content-Type: image/jpeg");}
+	if($format == 'image/gif'){header("Content-Type: image/gif");}
+		 
+	if($format == 'image/png'){imagepng($im);}
+	if($format == 'image/jpeg' || $format == 'image/jpg'){imagejpeg($im);}
+	if($format == 'image/gif'){imagegif($im);}	
+}
+function completeURL($url){
+	global $myKeys;
+	$c = 0;
+	for($i=0; $i<count($myKeys); $i++){
+		if($myKeys[$i] != "wms" && $myKeys[$i] != "sid"){
+			if($c > 0){ $url .= "&"; }
+			$url .= removeQM($myKeys[$i])."=".$_REQUEST[$myKeys[$i]];
+			$c++;
+		}
+	}
+	return $url;
+}
+function removeQM($t){
+	if(strpos($t,"?") === 0){
+		$t = substr($t,1);	
+	}	
+	return $t;
+}
+function sendMap($or){
+	global $format;
+	if($format == 'image/png'){header("Content-Type: image/png");}
+	if($format == 'image/jpeg' || $format == 'image/jpg'){header("Content-Type: image/jpeg");}
+	if($format == 'image/gif'){header("Content-Type: image/gif");}
+	readfile($or);
+}
 ?>
\ No newline at end of file




More information about the Mapbender_commits mailing list