2016-05-26 5 views
1

Ich versuche googlemaps API in eine Benutzerprofilregistrierungsseite zu verwenden. Teil des CodesPHP Stream googlemaps API kann nicht geladen werden

if(isset($_POST['submit'])) 
    { 
     $address = mysqli_real_escape_string($_POST['address']); 
    } 

    . 
    . 
    . 

if($address !=''){ 
    $address_code = urlencode($row['address']); 
    $request_url = "http://maps.googleapis.com/maps/api/geocode/xml?address=".$address_code."&sensor=true"; 
    $xml = simplexml_load_file($request_url) or die("url not loading"); 
    $status = $xml->status; 
    if ($status=="OK"){ 
     $lat = $xml->result->geometry->location->lat; 
     $lng = $xml->result->geometry->location->lng; 
     $latlng = "$lat,$lng"; 
    } 
    $sql1 = "INSERT INTO users(lat,lng) VALUES('$lat','$lng')"; 
    mysqli_query($database,$sql) or die(mysqli_error($database)); 
. 
. 
. 

Wenn ich die Registrierung senden, es gibt mir einen Fehler "[function.simplexml-load-Datei]: failed to open stream". Es scheint, dass der API-Aufruf den Inhalt der 'Adresse' nicht lesen kann.

+0

** WARNUNG **: Bei der Verwendung von 'mysqli' Sie [parametrisierte Abfragen] verwenden sollten (http://php.net/manual/en/mysqli.quickstart .prepared-statements.php) und ['bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), um Benutzerdaten zu Ihrer Abfrage hinzuzufügen. ** Verwenden Sie ** NICHT ** manuelles Escapen und String-Interpolation oder Verkettung, um dies zu erreichen, weil Sie schwerwiegende [SQL-Injektionsfehler] (http://bobby-tables.com/) erzeugen werden, wenn Sie jemals vergessen, etwas richtig zu entkommen. – tadman

+0

Sie müssen $ address_code Variable urlencode. nicht mysqli_real_escape_string – Faraz

Antwort

1

Sie sollten dies versuchen:

file_put_contents('update.xml', file_get_contents('http://someurl.com/update.xml') 
); 

$xml = simplexml_load_file('updated.xml'); 
Verwandte Themen