私はPHPをかなり使い慣れていて、いくつかのノードにPHPフォームを追加しようとしていますが、その方法については十分に注意しています。フォームから値を取得してPHPでXMLでノードを作成する
私がしようとしているのは、標準フォームからさまざまな要素の値を取得することです。各値は、追加するためにノードとして設定されます。
私のXMLに名前とコメントのある人を(私の例では)作成することができます。
MAMPのエラーログは私にこれらのエラーを言っている:
[19-Dec-2016 16:11:10 Europe/Berlin] PHP Notice: Undefined variable: name in /Applications/MAMP/htdocs/test-php/form.php on line 30
[19-Dec-2016 16:11:10 Europe/Berlin] PHP Notice: Trying to get property of non-object in /Applications/MAMP/htdocs/test-php/form.php on line 30
[19-Dec-2016 16:11:10 Europe/Berlin] PHP Notice: Undefined variable: comment in /Applications/MAMP/htdocs/test-php/form.php on line 31
[19-Dec-2016 16:11:10 Europe/Berlin] PHP Notice: Trying to get property of non-object in /Applications/MAMP/htdocs/test-php/form.php on line 31
[19-Dec-2016 16:11:15 Europe/Berlin] PHP Warning: Creating default object from empty value in /Applications/MAMP/htdocs/test-php/form.php on line 5
[19-Dec-2016 16:11:15 Europe/Berlin] PHP Warning: Creating default object from empty value in /Applications/MAMP/htdocs/test-php/form.php on line 6
[19-Dec-2016 16:11:15 Europe/Berlin] PHP Fatal error: Uncaught TypeError: Argument 1 passed to DOMNode::appendChild() must be an instance of DOMNode, instance of stdClass given in /Applications/MAMP/htdocs/test-php/form.php:16
私が私のフォームの値を取得しようとしている道が動作していないようです。私は間違って何をしていますか?
ご協力いただきありがとうございます。
マイPHP
<?php
if (isset($_POST['submit'])){
$name->nodeValue = $_POST['namanya'];
$comment->nodeValue = $_POST['commentnya'];
$xml = new DOMDocument('1.0', 'utf-8');
$xml->formatOutput = true;
$xml->preserveWhiteSpace = false;
$xml->load('examples.xml');
$inventors = $xml->getElementsByTagName('inventors')->item(0);
$person_inventor = $xml->createElement('person');
$name_inventor = $xml->createElement('name');
$name_inventor->appendChild($name);
$comment_inventor = $xml->createElement('comment');
$comment_invenotr->appendChild($comment);
$person_inventor->appendChild($name_inventor);
$person_inventor->appendChild($comment_inventor);
$inventors->appendChild($person_inventor);
htmlentities($xml->save('examples.xml'));
}
?>
<form method="POST" action=''>
name <input type="text-name" value="<?php echo $name->nodeValue?>" name="namanya" />
comment <input type="text-comment" value="<?php echo $comment->nodeValue?>" name="commentnya"/>
<input name="submit" type="submit"/>
</form>
マイXML
<?xml version="1.0" encoding="UTF-8"?>
<inventors>
<person>
<name>anie</name>
<comment>good</comment>
</person>
</inventors>
試してみてください。それはあなたがテキストをノードAに
$_POST
値を割り当てるようですので、次のいずれかの方法を考えます* nodeValueを使う前に* $ name *と* $ comment *を一番上に置きます。 – Parfait@パールトええ、私は書きました: $ name = $ _POST ['namanya']; $ comment = $ _POST ['commentnya']; –
しかし、私はまだ同じエラーが発生しています。 –