Ich erhielt dieses alte Skript von einem Client, der noch auf einem alten Server mit PHP 4.4 lief. Wir haben es auf einen neuen Server mit PHP 5.6 gestellt und es funktioniert nicht mehr wie es funktionieren sollte.PHP Schwerwiegender Fehler: Aufruf einer Memberfunktion getAttribute() auf null (PHP 4.4 zu PHP 5.6)
Das Skript speichert ein Formular in einer XML-Datei und ruft die Informationen aus der XML-Datei erneut in das Formular ab. Problem ist, dass es es nicht mehr abruft. Wir erhalten diesen Fehler:
PHP Fatal error: Call to a member function getAttribute() on null
Hier ist der Teil des Codes, wo es schief geht.
if(!$xml_page->parseXML($strXMLToCContents)){
$show_errors .= "Parsing failed.<br>";
}
$nodeRoot =& $xml_page->documentElement;
$nodeToCDef =& $nodeRoot->firstChild;
$strToCButtonLabel = $nodeToCDef->getAttribute("name");
$countToCRows = $nodeToCDef->childCount;
for($n = 0; $n < $countToCRows; $n++){
$thisLinkNode =& $nodeToCDef->childNodes[$n];
$arrLinks[] = array($thisLinkNode->getAttribute("name"), $thisLinkNode->getAttribute("page"));
}
}
}
if(count($arrLinks) == 0){
for($n = 0; $n < $numFormFieldsToShow; $n++){
$arrLinks[] = array('', '');
}
}
Irgendwelche Ideen, was geändert werden muss, damit es wieder funktioniert. Vielen Dank!
Für den Anfang, Sie all diese Referenzzuweisungen entfernen – Phil
Welche Linie der Fehler werfen? '$ nodeToCDef-> getAttribute ("name")' oder '$ thisLinkNode-> getAttribute ("name")' ? – Phil
Es gibt auch nichts, das dies vom Versuch abhält, auf das DOM zuzugreifen, wenn die Analyse fehlschlägt. – Phil