2017-08-24 62 views
0

自从现在一周以来,我一直被这个错误困住,我用Google搜索并尝试了所有可能的解决方案,包括Stackoverflow上的解决方案。这是我的代码:检查XML输出是否有效

<?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(); 
?> 

我的目标是输出的XML浏览器,以确保它的工作,但我已经收到这些错误:

enter image description here 欲了解更多信息,请参阅:https://developers.google.com/maps/solutions/store-locator/clothing-store-locator 能有人帮助我?

+0

您应该正确缩进您的代码。它可以帮助每个人阅读你的代码,这对你也有好处。 – ryantxr

+2

你可以粘贴你的XML输出吗?这是一个浏览器消息,而不是PHP error_log消息 – delboy1978uk

+0

@ delboy1978uk我的XML输出是附加的图像 – sankareb

回答

-1

这是浏览器消息,而不是PHP error_log消息。

某些东西在XML之前输出。很可能是PHP警告或通知。抑制垃圾!

要获得最佳错误记录体验,请将error_reporting设置为-1,关闭display_errors,然后设置自定义error_log。然后在终端中输入tail -f /path/to/error_log。您的通知,警告和错误现在将实时滚动浏览,而不会扭曲网页的显示。

+0

感谢您的努力!但我没有使用cdl接口,我宁愿使用xampp中的phpmyadmin并将其作为编辑器升级! – sankareb

+0

我做了你所说的,但现在我得到了另一个错误: 未定义的索引:lat在C:\ xampp \ htdocs \ storelocator.php在第4行 未定义的索引:lng在C:\ xampp \ htdocs \ storelocator.php在第5行 未定义的索引:第6行的C:\ xampp \ htdocs \ storelocator.php中的半径 – sankareb

+0

这意味着$ _GET [“lat”]未设置。你确定你不是指$ _POST?一个GET var在url中就像http://blah.com/my/url?getvar=value – delboy1978uk

0

没有足够的资源去实际解决您的问题。您可以使用以下内容来确保您获得期望的输入。

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

在XML中,开口

<?XML版本= “1.0” 编码= “UTF-8”?>

之前它不能有一个空间。在回声输出XML之前,您的PHP代码在某处输出空格。

+0

我把它放在我的代码的头部,这是我在浏览器上输出的结果: ** missing * * **纬度**,** lng ** 如果我删除它,然后我得到: **注意:未定义的索引:在第5行C:\ xampp \ htdocs \ storelocator.php ** – sankareb

+0

$ _GET确实不包含你认为它包含的内容。检查您如何访问该页面。 – ryantxr

+0

!我尽我所能,但仍然没有解决办法!如果你能帮助我,请!这是我所遵循的教程:https://developers.google.com/maps/solutions/store-locator/clothing-store-locator – sankareb