以下是一个使用PHP编写的简单数据收集表单:
<!DOCTYPE html>
<html>
<head>
<title>Data Collection Form</title>
</head>
<body>
<?php
// 定义变量并初始化为空
$name = $email = $age = "";
// 定义错误信息变量并初始化为空
$nameErr = $emailErr = $ageErr = "";
// 处理表单提交
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// 验证姓名
if (empty($_POST["name"])) {
$nameErr = "姓名是必填项";
} else {
$name = test_input($_POST["name"]);
}
// 验证邮箱
if (empty($_POST["email"])) {
$emailErr = "邮箱是必填项";
} else {
$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "无效的邮箱格式";
}
}
// 验证年龄
if (empty($_POST["age"])) {
$ageErr = "年龄是必填项";
} else {
$age = test_input($_POST["age"]);
if (!is_numeric($age) || $age < 1 || $age > 120) {
$ageErr = "无效的年龄";
}
}
}
// 清除不必要的字符(空格、标签等)
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<h2>Data Collection Form</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<label for="name">姓名:</label>
<input type="text" name="name" id="name">
<span class="error"><?php echo $nameErr; ?></span>
<br><br>
<label for="email">邮箱:</label>
<input type="text" name="email" id="email">
<span class="error"><?php echo $emailErr; ?></span>
<br><br>
<label for="age">年龄:</label>
<input type="text" name="age" id="age">
<span class="error"><?php echo $ageErr; ?></span>
<br><br>
<input type="submit" name="submit" value="提交">
</form>
<?php
// 如果表单提交且没有错误,则显示收集到的数据
if ($_SERVER["REQUEST_METHOD"] == "POST" && $nameErr == "" && $emailErr == "" && $ageErr == "") {
echo "<h2>收集到的数据:</h2>";
echo "姓名: " . $name . "<br>";
echo "邮箱: " . $email . "<br>";
echo "年龄: " . $age . "<br>";
}
?>
</body>
</html>
在上面的代码中,我们首先定义了一些变量来存储用户输入的数据(姓名、邮箱、年龄)以及错误信息。然后,我们通过$_SERVER["REQUEST_METHOD"]
来检查表单是否已经提交,如果是的话,我们会验证表单数据。 对于每个字段,我们都检查是否为空,并在必要时添加错误信息。此外,我们还验证了邮箱字段的格式是否正确,以及年龄字段的值是否为有效的数字。 最后,我们使用htmlspecialchars()
来确保用户输入的数据不包含任何恶意的HTML标签,并显示收集到的数据。
注意:上述代码仅为示例,并没有进行充分的验证和过滤。在实际应用中,还需要根据实际需求做更多的验证和过滤,以确保数据的安全性。