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