试图修复“试图在* on line *中获取非对象的属性”错误

时间:2014-11-12 20:20:55

标签: php variables

我知道这段代码可能容易受到SQL注入攻击,这并不重要,这是一个永远不会公开的私人家庭项目,唯一可以访问此代码的人我是我的父亲和兄弟。

我正在制作一个按某些按钮的网站,它会将您送到商店,但由于此错误,商店无法加载:

<b>Notice</b>:  Trying to get property of non-object in <b>shop.php</b> on line <b>12</b>

可能有什么不对?我曾尝试在互联网上寻找解决方案,但我没有找到。

这是影响的代码行:

if (!isset($HTTP_RAW_POST_DATA)) {
$HTTP_RAW_POST_DATA = file_get_contents("php://input");

$doc = new DOMDocument();
$doc->loadXML($HTTP_RAW_POST_DATA);

$intShopId = $doc->getElementsByTagName('intShopId');
$shop_id = $intShopId->item(0)->nodeValue;

本案例的最后一行是第12行。

我知道这是因为$intShopId不是对象。我认为它需要是一个作为参数传递的全局变量,但在这个个案中我无法弄清楚什么是错的,我会感激一些帮助。

这里的问题可能有一些语法错误和/或拼写错误,如果是这种情况我会道歉。我来自瑞典。

1 个答案:

答案 0 :(得分:3)

问题出在这一行:

$intShopId = $doc->getElementsByTagName('intShopId');

因为没有<int>这样的标记 - 甚至任何标记甚至都以此开头,所以该方法返回null,或者其他没有帮助的东西。

您可能希望使用以下方法:

$doc->getElementById('intShopId');