Php 试图获取非对象的属性

Php 试图获取非对象的属性,php,Php,当我运行php时,总是会出现以下错误: 注意:尝试在中获取非对象的属性 第42行的C:\xampp\htdocs\Project\a\index\u admin.php 我只想显示管理员的姓。这是我的密码 xpath(“/*[admin\u username=$AdminID]”); 如果(计数($admin)>=1) { $xml_字符串=“”; while(列表(,$Node)=每个($admin)) { $xml_string.=$Node->asXML(); } } ?> 管理主菜单 v

当我运行php时,总是会出现以下错误:

注意:尝试在中获取非对象的属性 第42行的C:\xampp\htdocs\Project\a\index\u admin.php

我只想显示管理员的姓。这是我的密码

xpath(“/*[admin\u username=$AdminID]”);
如果(计数($admin)>=1)
{
$xml_字符串=“”;
while(列表(,$Node)=每个($admin))
{
$xml_string.=$Node->asXML();
}
}
?>
管理主菜单
var-xmlhttp;
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
函数注销(){
$(文档).ready(函数(){
警报(“您已成功从系统注销。感谢您使用此系统!!”;
});
}
欢迎管理员。
管理菜单





第42行是:
欢迎管理员。

我还尝试了
欢迎管理员。
它还说:

注意:未定义的偏移量:0英寸 第42行的C:\xampp\htdocs\Project\a\index\u admin.php

admin.xml:


管理
1234
阿布
阿里
班登再也
1900
03-92844476

正如我所怀疑的,XPath查询返回时没有结果。我稍微修改了一下,成功了

更改此行:

 $admin = $xml->xpath("//*[admin_username=$AdminID]");
为此:

 $admin = $xml->xpath("//*[admin_username='$AdminID']");
您只需要在用户名字符串周围加引号

我个人对soulseekah在评论中提出的问题没有把握


我还想提一下:你不应该用明文存储密码。使用散列函数。

您的xpath查询可能是空的。admin 1234 Abu Ali Pandan Jaya 1900 03-92844476和
$\u SESSION['id']
包含字符串
admin
,对吗?xpath查询错误。应该是
$xml->xpath(“*/admin\u username[text()='$AdminID']”“
(注意这里的注入)。@soulsekah这个查询的光泽对我来说似乎不太合适。好吧,
/
意味着“任何级别的子元素”,而不是“至少两个标记深的元素”,以及
*[admin\u username=something]
(忽略引用问题)表示具有名为
admin\u username
的子元素的元素,该子元素的文本内容与
something
匹配(“属性”在XML上下文中不表示任何内容,但与属性匹配的是
*[@admin\u username=something]