]> git.openstreetmap.org Git - nominatim.git/commitdiff
fix PHP warnings when reverse search was called without parameters
authormarc tobias <mtmail@gmx.net>
Thu, 17 Nov 2016 21:55:05 +0000 (22:55 +0100)
committerSarah Hoffmann <lonvia@denofr.de>
Thu, 17 Nov 2016 21:55:05 +0000 (22:55 +0100)
... or empty results

lib/template/address-html.php
website/reverse.php

index b4c7533e190f52890fbeb2f154e548cfdcf6c1cf..63072911da3579f8169ede7c7c6c6ae52e05335e 100644 (file)
     <form class="form-inline" role="search" accept-charset="UTF-8" action="<?php echo CONST_Website_BaseURL; ?>reverse.php">
         <div class="form-group">
             <input name="format" type="hidden" value="html">
-            <input name="lat" type="text" class="form-control input-sm" placeholder="latitude"  value="<?php echo htmlspecialchars($_GET['lat']); ?>" >
+            <input name="lat" type="text" class="form-control input-sm" placeholder="latitude" value="<?php echo $fLat; ?>" >
             <span id="switch-coords">&lt;&gt;</span>
-            <input name="lon" type="text" class="form-control input-sm" placeholder="longitude" value="<?php echo htmlspecialchars($_GET['lon']); ?>" >
+            <input name="lon" type="text" class="form-control input-sm" placeholder="longitude" value="<?php echo $fLon; ?>" >
             max zoom
 
-            <select name="zoom" class="form-control input-sm" value="<?php echo htmlspecialchars($_GET['zoom']); ?>">
-                <option value="" <?php echo $_GET['zoom']==''?'selected':'' ?> >--</option>
+            <select name="zoom" class="form-control input-sm">
+                <option value="" <?php if ($iZoom === false) echo 'selected="selected"' ?> >--</option>
                 <?php
 
                     $aZoomLevels = array(
@@ -49,8 +49,8 @@
 
                     foreach($aZoomLevels as $iZoomLevel => $sLabel)
                     {
-                        $bSel = isset($_GET['zoom']) && ($_GET['zoom'] == (string)$iZoomLevel);
-                        echo '<option value="'.$iZoomLevel.'"'.($bSel?'selected':'').'>'.$iZoomLevel.' '.$sLabel.'</option>'."\n";
+                        $bSel = $iZoom === $iZoomLevel;
+                        echo '<option value="'.$iZoomLevel.'"'.($bSel?' selected="selected"':'').'>'.$iZoomLevel.' '.$sLabel.'</option>'."\n";
                     }
                 ?>
             </select>
@@ -66,7 +66,7 @@
 
     <div id="content">
 
-<?php if ($aPlace) { ?>
+<?php if (count($aPlace)>0) { ?>
 
         <div id="searchresults" class="sidebar">
         <?php
     <?php
 
         $aNominatimMapInit = array(
-            'zoom' => isset($_GET['zoom']) ? htmlspecialchars($_GET['zoom']) : CONST_Default_Zoom,
-            'lat'  => isset($_GET['lat']) ? htmlspecialchars($_GET['lat']) : CONST_Default_Lat,
-            'lon'  => isset($_GET['lon']) ? htmlspecialchars($_GET['lon']) : CONST_Default_Lon,
+            'zoom' => $iZoom !== false ? $iZoom : CONST_Default_Zoom,
+            'lat'  => $fLat !== false ? $fLat : CONST_Default_Lat,
+            'lon'  => $fLon !== false ? $fLon : CONST_Default_Lon,
             'tile_url' => $sTileURL,
             'tile_attribution' => $sTileAttribution
         );
index bd852e3213da11138cebbd78b9aa2b24e9074abc..026fa85b434b4dcabc7af6dc2ecf6db1ea3650ba 100755 (executable)
@@ -49,11 +49,12 @@ $sOsmType = $oParams->getSet('osm_type', array('N', 'W', 'R'));
 $iOsmId = $oParams->getInt('osm_id', -1);
 $fLat = $oParams->getFloat('lat');
 $fLon = $oParams->getFloat('lon');
+$iZoom = $oParams->getInt('zoom');
 if ($sOsmType && $iOsmId > 0) {
     $aPlace = $oPlaceLookup->lookupOSMID($sOsmType, $iOsmId);
 } elseif ($fLat !== false && $fLon !== false) {
     $oReverseGeocode = new Nominatim\ReverseGeocode($oDB);
-    $oReverseGeocode->setZoom($oParams->getInt('zoom', 18));
+    $oReverseGeocode->setZoom($iZoom !== false ? $iZoom : 18);
 
     $aLookup = $oReverseGeocode->lookup($fLat, $fLon);
     if (CONST_Debug) var_dump($aLookup);
@@ -67,7 +68,7 @@ if ($sOsmType && $iOsmId > 0) {
     userError("Need coordinates or OSM object to lookup.");
 }
 
-if ($aPlace) {
+if (isset($aPlace)) {
     $oPlaceLookup->setIncludePolygonAsPoints(false);
     $oPlaceLookup->setIncludePolygonAsText($bAsText);
     $oPlaceLookup->setIncludePolygonAsGeoJSON($bAsGeoJSON);
@@ -86,6 +87,8 @@ if ($aPlace) {
     if ($aOutlineResult) {
         $aPlace = array_merge($aPlace, $aOutlineResult);
     }
+} else {
+    $aPlace = [];
 }
 
 
@@ -94,7 +97,7 @@ if (CONST_Debug) {
     exit;
 }
 
-if ($sOutputFormat=='html') {
+if ($sOutputFormat == 'html') {
     $sDataDate = chksql($oDB->getOne("select TO_CHAR(lastimportdate - '2 minutes'::interval,'YYYY/MM/DD HH24:MI')||' GMT' from import_status limit 1"));
     $sTileURL = CONST_Map_Tile_URL;
     $sTileAttribution = CONST_Map_Tile_Attribution;