]*>)"; $patternInsert = "(]*>)"; $patternDelete = "(]*>)"; $e = new mb_notice("geom2wfst: addParameterToFilter: old filter was: " . $filter); // insert: store authenticated user in database if (eregi($patternInsert, $filter)) { $pattern = "(<" . $featuretype_name . ">)"; $replacement = "\\1<" . $element_name . ">" . $user . ""; $filter = eregi_replace($pattern, $replacement, $filter); } // update or delete: disallow access for other users if (eregi($patternDelete, $filter) || eregi($patternUpdate, $filter)) { $pattern = "()(]*>)()"; $replacement = "\\1\\2" . $element_name . "" . $user . "\\3"; $filter = eregi_replace($pattern, $replacement, $filter); } $e = new mb_notice("geom2wfst: addParameterToFilter: new filter is: " . $filter); } else { $e = new mb_exception("geom2wfst: addParameterToFilter: invalid auth_varname (".$auth_varname.")"); } } else { $e = new mb_notice("geom2wfst: addParameterToFilter: no auth_varname."); } return $filter; } function checkVal($value){ $pattern = array("'",'"',"--"); $r = str_replace($pattern, "", $value); $r = addslashes($r); return $r; } function sepNameSpace($s){ $c = mb_strpos($s,":"); if($c>0) return mb_substr($s,$c+1); return $s; } function sendToHost($host,$port,$method,$path,$data){ $buf = ''; if (empty($method)) $method = 'POST'; $method = mb_strtoupper($method); $fp = fsockopen($host, $port); fputs($fp, "$method $path HTTP/1.1\r\n"); fputs($fp, "Host: $host\r\n"); fputs($fp,"Content-type: application/xml\r\n"); fputs($fp, "Content-length: " . strlen($data) . "\r\n"); fputs($fp, "Connection: close\r\n\r\n"); if ($method == 'POST') fputs($fp, $data); while (!feof($fp)) $buf .= fgets($fp,4096); fclose($fp); return $buf; } $result=""; $error = false; $arURL = parse_url($_REQUEST["url"]); $host = $arURL["host"]; $port = $arURL["port"]; if($port == '') $port = 80; $path = $arURL["path"]; $method = "POST"; $filter = stripslashes(addParameterToFilter($_REQUEST["filter"], $featuretype_name, $wfs_conf_id)); $data = sendToHost($host,$port,$method,html_entity_decode($path),$filter); $data = mb_eregi_replace("^[^<]*", "", $data); $data = mb_eregi_replace("[^>]*$", "", $data); header('Content-type: text/html'); $resObj = array(); if (mb_strpos(mb_strtoupper($data), "SUCCESS") !== false) { $response = "success"; if (mb_ereg("^.*ogc:FeatureId fid=\"(.+)\"/>.*$", $data)) { $fid = mb_ereg_replace("^.*ogc:FeatureId fid=\"(.+)\"/>.*$", "\\1", $data); $resObj["fid"] = $fid; } $resObj["successConfirmation"] = $data; } else { $response = "error"; $resObj["errorMessage"] = $data; } $resObj["response"] = $response; $notice = new mb_notice("response:".$response); header("Content-Type:application/x-json"); $json = new Mapbender_JSON(); echo $json->encode($resObj); ?>