<?

include("inc_dbconn.php");


$pc1 $_GET["pc1"];
$pc2 $_GET["pc2"];
$name $_GET["name"];

function 
fetchURL$url ) {
   
$url_parsed parse_url($url);
   
$host $url_parsed["host"];
   
$port $url_parsed["port"];
   if (
$port==0)
       
$port 80;
   
$path $url_parsed["path"];
   if (
$url_parsed["query"] != "")
       
$path .= "?".$url_parsed["query"];

   
$out "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n";

   
$fp fsockopen($host$port$errno$errstr30);

   
fwrite($fp$out);
   
$body false;
   while (!
feof($fp)) {
       
$s fgets($fp1024);
       if ( 
$body )
           
$in .= $s;
       if ( 
$s == "\r\n" )
           
$body true;
   }
  
   
fclose($fp);
  
   return 
$in;
}

//make postal code
$pcfull $pc1 $pc2;

// form geocoder.ca url for GET
$url "http://geocoder.ca/?postal=" $pcfull "&geoit=XML";

// get XML into $result
$result fetchURL($url);

// XML parser to parse out lat/long

$xml_parser xml_parser_create();

xml_parse_into_struct($xml_parser$result$vals$index);
xml_parser_free($xml_parser);

$params = array();
$level = array();
foreach (
$vals as $xml_elem) {
  if (
$xml_elem['type'] == 'open') {
   if (
array_key_exists('attributes',$xml_elem)) {
     list(
$level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']);
   } else {
     
$level[$xml_elem['level']] = $xml_elem['tag'];
   }
  }
  if (
$xml_elem['type'] == 'complete') {
   
$start_level 1;
   
$php_stmt '$params';
   while(
$start_level $xml_elem['level']) {
     
$php_stmt .= '[$level['.$start_level.']]';
     
$start_level++;
   }
   
$php_stmt .= '[$xml_elem[\'tag\']] = $xml_elem[\'value\'];';
   eval(
$php_stmt);
  }
}

// move parse XML into variables
$latitude $params[GEODATA][LATT];
$longtitude $params[GEODATA][LONGT];

// add to db


$query "INSERT INTO points VALUES (NULL, '" $latitude "', '" $longtitude "' , '" $name "',NULL,NULL)";
$result mysql_query($query) or die("INSERT query failed" mysql_error());


// let's add to our XML data file too
// because PHP cannot prepend to a file, this gets pretty convoluted
// 1. open existing xml file into string
// 2. strip off last x characters to remove closing </member> tag
// 3. append new data to string
// 4. append closing </member> tag
// 5. write the whole string back to file
// NOT USING THIS, but still generating the XML just for kicks

$xml file_get_contents('members.xml');
$handle fopen('members.xml','w');
$xml substr($xml75);
$xml substr($xml0, -11);
$data "<member><point lng=\"$longtitude\" lat=\"$latitude\" name=\"$name\" /></member>\n";
$header1 "Content-Type: text/xml; charset=ISO-8859-1\n";
$header2 "<?xml version=\"1.0\"?>\n";
$open_tag "<members>\n";
$close_tag "</members>\n";
$xml $header1 $header2 $open_tag $xml $data $close_tag;
fwrite($handle$xml);
fclose($handle);


// reload the page
header("Location: http://www.trapwatch.com/map/index.php?code=200&name=$name");

?>