2017-08-24 3 views
0

Ich bin seit einer Woche mit diesem Fehler festgefahren, habe gegoogelt und jede mögliche Lösung einschließlich der auf Stackoverflow versucht. Dies ist mein Code:Überprüfen, ob XML-Ausgabe funktioniert

<?php 
require("phpsqlsearch_dbinfo.php"); 
// Get parameters from URL 
$center_lat = $_GET["lat"]; 
$center_lng = $_GET["lng"]; 
$radius = $_GET["radius"]; 
// Start XML file, create parent node 
$dom = new DOMDocument("1.0"); 
$node = $dom->createElement("markers"); 
$parnode = $dom->appendChild($node); 
// Opens a connection to a mySQL server 
$connection=mysqli_connect ("localhost", $username, $password); 
if (!$connection) { 
    die("Not connected : " . mysqli_error()); 
} 
// Set the active mySQL database 
$db_selected = mysqli_select_db($connection, $database); 
if (!$db_selected) { 
    die ("Can\'t use db : " . mysqli_error($connection)); 
} 
// Search the rows in the markers table 
$query = sprintf("SELECT id, name, address, lat, lng, (3959 * acos(cos( 
    radians('%s')) * cos(radians(lat)) * cos(radians(lng) - 
    radians('%s')) + sin(radians('%s')) * sin(radians(lat)))) AS 
    distance FROM markers HAVING distance < '%s' ORDER BY distance LIMIT 0 , 
    20", 
    mysqli_real_escape_string($connection, $center_lat), 
    mysqli_real_escape_string($connection, $center_lng), 
    mysqli_real_escape_string($connection, $center_lat), 
    mysqli_real_escape_string($connection, $radius)); 
$result = mysqli_query($connection, $query); 
$result = mysqli_query($connection, $query); 
if (!$result) { 
    die("Invalid query: " . mysqli_error($connection)); 
} 
header("Content-type: text/xml"); 
// Iterate through the rows, adding XML nodes for each 
while ($row = @mysqli_fetch_assoc($result)){ 
    $node = $dom->createElement("marker"); 
    $newnode = $parnode->appendChild($node); 
    $newnode->setAttribute("id", $row['id']); 
    $newnode->setAttribute("name", $row['name']); 
    $newnode->setAttribute("address", $row['address']); 
    $newnode->setAttribute("lat", $row['lat']); 
    $newnode->setAttribute("lng", $row['lng']); 
    $newnode->setAttribute("distance", $row['distance']); 
} 
echo $dom->saveXML(); 
?> 

Mein Ziel ist die XML an den Browser ausgeben, um sicherzustellen, dass es funktioniert, aber ich habe diesen Fehler wurde immer:

enter image description here Für weitere Informationen siehe: https://developers.google.com/maps/solutions/store-locator/clothing-store-locator Kann jemand hilft mir aus ???

+0

Sie sollten Ihren Code richtig einrücken. Es hilft jedem, Ihren Code zu lesen, und es ist auch gut für Sie. – ryantxr

+2

Können Sie Ihre XML-Ausgabe einfügen? Das ist eine Browser-Nachricht, keine PHP-Fehlermeldung – delboy1978uk

+0

@ delboy1978uk meine XML-Ausgabe ist das Bild – sankareb

Antwort

-1

Das ist eine Browsernachricht, keine PHP error_log Nachricht.

Etwas hat vor dem XML ausgegeben. Höchstwahrscheinlich eine PHP-Warnung oder Hinweis. Unterdrücke diesen Müll!

Für die beste Erfahrung bei der Fehlerprotokollierung setzen Sie error_reporting auf -1, schalten Sie display_errors aus und setzen Sie eine benutzerdefinierte . Geben Sie dann im Terminal tail -f /path/to/error_log ein. Ihre Benachrichtigungen, Warnungen und Fehler werden jetzt in Echtzeit vorbeilaufen, ohne die Anzeige Ihrer Webseite zu verzerren.

+0

Danke für die Mühe! Aber ich benutze keine CDL-Schnittstelle, ich benutze lieber phpmyadmin von xampp und sublime als Editor! – sankareb

+0

Ich habe getan, was Sie gesagt haben, aber jetzt bekomme ich einen weiteren Fehler: Undefinierter Index: lat in C: \ xampp \ htdocs \ storelocator.php in Zeile 4 Undefinierter Index: lng in C: \ xampp \ htdocs \ storelocator.php in Zeile 5 Undefinierter Index: Radius in C: \ xampp \ htdocs \ storelocator.php in Zeile 6 – sankareb

+0

Das bedeutet $ _GET ["lat"] ist nicht festgelegt. Sind Sie sicher, dass Sie nicht $ _POST gemeint haben? Ein GET var ist in der URL wie http://blah.com/my/url?getvar=value – delboy1978uk

0

Es gibt nicht genug, um Ihr Problem zu lösen. Sie können Folgendes verwenden, um sicherzustellen, dass Sie die erwarteten Eingaben erhalten.

$required = ['lat', 'lng']; 
$missing = array_diff($required, $_GET); 
if (! empty($missing)) { 
    $missingString = implode(',', $missing); 
    die("missing {$missingString}"); 
} 

Mit XML, die Öffnung

<? Xml version = "1.0" encoding = "UTF-8"?>

kann keinen Raum vor ihm haben. Ihr PHP-Code gibt irgendwo Leerzeichen aus, bevor das Echo das XML ausgibt.

+0

Ich stelle dies an der Spitze meines Codes, das ist die Ausgabe, die ich auf den Browser bekomme: ** fehlt * * ** lat **, ** lng ** Wenn ich es entferne dann bekomme ich: ** Hinweis: Undefinierter Index: lat in C: \ xampp \ htdocs \ storelocator.php in Zeile 5 ** – sankareb

+0

$ _GET tut nicht enthalten, was du denkst, dass es enthält. Überprüfen Sie, wie Sie auf die Seite zugreifen. – ryantxr

+0

! Ich habe alles versucht, was ich konnte, aber immer noch keine Lösung! Wenn Sie mir bitte helfen könnten! Dies ist das Tutorial, das ich befolge: https://developers.google.com/maps/solutions/store-locator/clothing-store-locator – sankareb