php实现表单成功提交
PHP 表单提交实现方法
创建表单提交功能需要处理 HTML 表单构建、数据接收、验证及处理三个核心部分。
构建 HTML 表单
使用 <form> 标签设置提交目标和方式,示例包含文本输入和提交按钮:

<form method="post" action="process_form.php">
<label for="name">姓名:</label>
<input type="text" id="name" name="name" required>
<label for="email">邮箱:</label>
<input type="email" id="email" name="email" required>
<input type="submit" value="提交">
</form>
接收并验证数据
在 process_form.php 中通过 $_POST 获取数据,并进行基础验证:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = trim($_POST["name"]);
$email = trim($_POST["email"]);
$errors = [];
if (empty($name)) {
$errors[] = "姓名不能为空";
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = "邮箱格式无效";
}
if (empty($errors)) {
// 数据处理逻辑
} else {
foreach ($errors as $error) {
echo "<p>错误:$error</p>";
}
}
}
?>
处理有效数据
验证通过后执行数据库操作或发送邮件等处理:
if (empty($errors)) {
// 示例:保存到数据库(需先建立连接)
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->execute([$name, $email]);
// 或发送邮件
$to = "admin@example.com";
$subject = "新表单提交";
$message = "姓名:$name\n邮箱:$email";
mail($to, $subject, $message);
echo "提交成功!";
}
安全增强措施
- 使用
htmlspecialchars()防止 XSS:$name = htmlspecialchars($name); - 预处理语句防止 SQL 注入(如上述 PDO 示例)
- 对文件上传使用
is_uploaded_file()和move_uploaded_file()
完整流程示例
结合所有步骤的典型处理流程:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// 接收并清理数据
$name = htmlspecialchars(trim($_POST["name"]));
$email = htmlspecialchars(trim($_POST["email"]));
// 验证
$errors = [];
if (empty($name)) $errors[] = "需填写姓名";
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) $errors[] = "邮箱无效";
// 处理结果
if (empty($errors)) {
try {
$pdo = new PDO("mysql:host=localhost;dbname=test", "user", "pass");
$stmt = $pdo->prepare("INSERT INTO contacts (name, email) VALUES (?, ?)");
$stmt->execute([$name, $email]);
header("Location: success.html");
exit;
} catch (PDOException $e) {
$errors[] = "数据库错误:" . $e->getMessage();
}
}
}
?>
<!-- 显示错误或表单 -->
<?php if (!empty($errors)): ?>
<div class="errors">
<?php foreach ($errors as $error): ?>
<p><?= $error ?></p>
<?php endforeach ?>
</div>
<?php endif ?>






