Changeset 512 for trunk/npemap.org.uk/cgi/get-postcodes.fcgi
- Timestamp:
- Mar 26, 2007, 6:44:57 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/npemap.org.uk/cgi/get-postcodes.fcgi
r300 r512 26 26 my $max_distance = 50000; # in metres 27 27 28 my %grid_max = ( 29 easting => { 'gb' => 700000, 'ie' => 400000 }, 30 northing => { 'gb' => 1300000, 'ie' => 500000 }, 31 ); 32 28 33 my $cgi; 29 34 # Process incoming requests … … 35 40 next REQUEST; 36 41 } 42 43 # Did they request the irish grid? 44 my $grid = 'gb'; 45 my $ie = 0; 46 if(defined $cgi->param('ie')) { 47 $grid = 'ie'; 48 $ie = 1; 49 } 37 50 38 51 # Input validation … … 46 59 # Are the Eastings in a valid range? 47 60 foreach (qw(mineasting maxeasting)) { 48 if (($cgi->param($_) > 700000) or61 if (($cgi->param($_) > $grid_max{'easting'}->{$grid}) or 49 62 ($cgi->param($_) < 0)) { 50 print_err ("Parameter '$_' must be an integer between 0 and 700,000");63 print_err ("Parameter '$_' must be an integer between 0 and ".($grid_max{'easting'}->{$grid}/1000).",000"); 51 64 next REQUEST; 52 65 } … … 55 68 # Are the Northings in a valid range? 56 69 foreach (qw(minnorthing maxnorthing)) { 57 if (($cgi->param($_) > 1300000) or70 if (($cgi->param($_) > $grid_max{'northing'}->{$grid}) or 58 71 ($cgi->param($_) < 0)) { 59 print_err("Parameter '$_' must be an integer between 0 and 1,300,000");72 print_err("Parameter '$_' must be an integer between 0 and ".($grid_max{'northing'}->{$grid}/1000).",000"); 60 73 next REQUEST; 61 74 } … … 68 81 } 69 82 70 my $sth = $dbh->prepare("SELECT outward || ' ' || inward AS postcode, easting, northing,id,source FROM postcodes WHERE easting BETWEEN ? AND ? AND northing BETWEEN ? AND ? AND NOT deleted"); 83 my ($e,$n) = ("easting","northing"); 84 if($ie) { ($e,$n) = ("ie_easting","ie_northing"); } 85 my $sth = $dbh->prepare("SELECT outward || ' ' || inward AS postcode, $e, $n,id,source FROM postcodes WHERE $e BETWEEN ? AND ? AND $n BETWEEN ? AND ? AND NOT deleted"); 71 86 72 87 if ($sth->execute($cgi->param('mineasting'), $cgi->param('maxeasting'), $cgi->param('minnorthing'), $cgi->param('maxnorthing'))) {
Note: See TracChangeset
for help on using the changeset viewer.