Php,XML声明只允许在文档的开头
Php , XML declaration allowed only at the start of the document
这是我第一次使用ajax,这是我从新的波士顿网站上学习的。 但是我收到以下错误
第6 列第 8 行出现错误:仅在文档开头允许 XML 声明
我尝试删除通常似乎是修复的空格,但这不起作用。任何建议都会很棒。
<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
echo '<response>';
$staus;
$email_in_use = $_GET['email'];
$query = mysqli_query($link, "SELECT * FROM emails WHERE email='".$email_in_use."'");
if(mysqli_num_rows($query) > 0){
$staus = false;
return $status;
}else{
// do something
if (!mysqli_query($con,$query))
{
die('Error: ' . mysqli_error($con));
}else{
$staus = true;
return $status;
}
}
echo '</response>';
?>
脚本中存在许多问题。
首先,$staus
不是$status
:统一的变量名。
但核心问题是你的脚本永远不会输出一个正确的XML文件:
if (!mysqli_query($con,$query))
{
die('Error: ' . mysqli_error($con));
}else{
$staus = true;
return $status;
}
die()
和return
停止脚本执行,因此不会打印结束</response>
标记。
顺便说一句,您的错误与示例中的代码无关,除非您在声明之前有空白行或其他内容<?php
。
以你的方式输出XML不是一个好主意,最好将执行代码和输出分开。像这样:
$email_in_use = $_GET['email'];
(...)
if( !mysqli_query( $con, $query ) )
{ $status = mysqli_error( $con ); }
else
{ $status = 'OK'; }
header( 'Content-Type: text/xml' );
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
echo '<response>';
echo '<status>'.$status.'</status>';
echo '</response>';
尾注:为了保证正确的XML,我建议您使用XML解析器。使用SimpleXML,即,你可以这样写:
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8" standalone="yes" ?><response><status/></response>');
$xml->response->status = $status;
echo $xml->asXML();
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
这应该是页面的第一行。XML 希望这是第一行;没有例外。
附言。如果删除header('Content-Type: text/xml');
它会起作用。
我认为这里发生的事情是这条线干扰了开头的 xml。
相关文章:
- 使用promise和mongoose对文档进行排序
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- Ajax请求文档就绪会导致jquery加载缓慢
- MongoDB (php) - 以数组而不是多个属性的形式返回文档属性
- 谷歌文档表面引擎
- 来自文档或下一个静态父级的事件委派
- 如何将childNodes用于XML文档
- 文档就绪提供了错误的选择器高度
- 将当前用户的 ID 推送到 meteorjs 中集合/文档的内部数组
- 未捕获的语法错误:无法在“文档”上执行“查询选择器”
- BrowserId登录请求在文档加载时被调用
- 从Javascript和Php变量创建Html模板文档
- 如何通过谷歌应用程序脚本从谷歌文档中的位置确定命名范围
- 在jquery文档准备好之前加载Modernizr
- 如何判断何时将dom节点添加到文档中
- 无法获取文档.GetElementById工作正常
- 为什么是文档.旧版应用程序中的DOM-object.properties为null
- 在html文档的开头声明变量
- Php,XML声明只允许在文档的开头
- Eclipse一直跳到文档的开头