我有一个要保存到XML文件并以电子邮件形式发送信息的Web表单。但是代码在某种程度上感觉是重复的。有没有更有效的方法?
webform.php
<!DOCTYPE html>
<html>
<head></head>
<body>
<div class="content">
<form action="formprocessor.php" method="POST">
<label>Name: </label>
<input name="name" type="text" size="25" />
<label>Course: </label>
<input name="course" type="text" size="25" />
<label>Book: </label>
<input name="book" type="text" size="255" />
<label>Price: </label>
<input name="price" type="text" size="7" />
<label>Email: </label>
<input name="email" type="text" size="255" />
<label>Phone #: </label>
<input name="phone" type="text" size="12" />
<input name="mySubmit" type="submit" value="Submit!" />
</form>
</div>
</body>
</html>
formprocessor.php
<?php
$name = $_POST["name"];
$course = $_POST["course"];
$book = $_POST["book"];
$price = $_POST["price"];
$email = $_POST["email"];
$phone = $_POST["phone"];
echo $name;
?>
首先,我需要在输入中定义名称。
然后在post formprocessor.php中使用相同的名称
将其分配给变量
使用变量发送邮件和XML
我必须使用复制粘贴代码但名称不同来执行30次(30个字段)。
答案 0 :(得分:0)
这是您可以做什么的一个示例。我强烈建议您建立一个数组,并使用它来构建xml而不是选项1: (请参见How to convert array to SimpleXML)
// option 1
$_POST = [
'foo' => 'bar',
'bar' => 'foo'
];
foreach($_POST as $key => $value) {
$$key = $value; // http://php.net/manual/en/language.variables.variable.php
}
var_dump($foo, $bar);
// option 2
$toXMLArray = [];
foreach($_POST as $key => $value) {
$toXMLArray[$key] = $value;
}
var_dump($toXMLArray);
$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($toXMLArray, array ($xml, 'addChild'));
print $xml->asXML();