我正在尝试使用SimpleXML
向XML文件添加新条目XML结构:
<events>
<event id="1">
<name>event name</name>
<time>09:00</time>
<endtime>09:30</endtime>
<category>event category</category>
<description>A description of event</description>
<loc>location of event</loc>
<picturePath>path to picture location</picturePath>
</event>
</events>
表单布局:
<form name ="createEvent" method="post" action="createEvent.php">
<input type="hidden" name="check_submit" value="1" />
<table border="1">
<tr bgcolor="#FFA500">
<th>Name</th>
<th>Start Time</th>
<th>End Time</th>
<th>Category</th>
<th>Description</th>
<th>Location</th>
<th>Picture Path</th>
<th>Create</th>
</tr>
<tr>
<td><input type="text" name="name" placeholder="Enter new event name..."/></td>
<td><input type="text" name="time" placeholder="Enter event start time..."/></td>
<td><input type="text" name="endtime" placeholder="Enter event end time..."/></td>
<td><input type="text" name="category"/></td>
<td><input type="text" name="description" placeholder="Enter a description of the event..."/></td>
<td><input type="text" name="loc"/></td>
<td><input type="text" name="picturePath" placeholder="Enter link to picture..."/></td>
<td><input type="submit" name="create" class="box" value="Create"/></td>
</tr>
</table
</form>
PHP提交文件(所有工作是什么):
<?php
if (array_key_exists('check_submit', $_POST)) {
$xml = new SimpleXMLElement ('http://odapp.unsw.adfa.edu.au/~z3370257/joel/practice/events-small.xml', null, true);
$id = count($xml->event);
$add = 1;
$newid = $id + $add;
$event = $xml->addChild('event');
$event->addAttribute('id', $newid);
$event->addChild('name', $_POST['name']);
$event->addChild('time', $_POST['time']);
$event->addChild('endtime', $_POST['endtime']);
$event->addChild('category', $_POST['category']);
$event->addChild('description', $_POST['description']);
$event->addChild('loc', $_POST['loc']);
$event->addChild('picturePath', $_POST['picturePath']);
$xml->asXML('http://odapp.unsw.adfa.edu.au/~z3370257/joel/practice/events-small.xml');
} else {
echo "You can't see this page without submitting the form.";
}
?>
老实说,我想不出为什么这不起作用。我已经尝试将发布数据放入以下形式的数组中:
$newEvent = array(
'name' => $_POST['name']
etc.
和
$name = $_POST['name']
etc.
无济于事。我已经更改了文件的权限,因此它们都是读/写/执行的。我几乎要说它可能与服务器上的安全性有关,但它允许我轻松抓取数据,所以我不确定。任何帮助将不胜感激
答案 0 :(得分:0)
您的表单数据中没有任何值,因此请检查表单中的值。我在我的本地服务器上运行它,它工作正常。这是您精炼的表格代码......
<form name ="createEvent" method="post" action="createEvent.php">
<input type="hidden" name="check_submit" value="1" />
<table border="1">
<tr bgcolor="#FFA500">
<th>Name</th>
<th>Start Time</th>
<th>End Time</th>
<th>Category</th>
<th>Description</th>
<th>Location</th>
<th>Picture Path</th>
<th>Create</th>
</tr>
<tr>
<td><input type="text" name="name" value="Meghendra" placeholder="Enter new event name..."/></td>
<td><input type="text" name="time" value="15-11-2013" placeholder="Enter event start time..."/></td>
<td><input type="text" name="endtime" value="15-12-2013" placeholder="Enter event end time..."/></td>
<td><input type="text" name="category" value="Demo category"/></td>
<td><input type="text" name="description" value="lorem ipsum is a dummy content." placeholder="Enter a description of the event..."/></td>
<td><input type="text" name="loc" value="florida"/></td>
<td><input type="text" name="picturePath" value="/uploads" placeholder="Enter link to picture..."/></td>
<td><input type="submit" name="create" class="box" value="Create"/></td>
</tr>
</table
</form>