php实现表单保存
使用PHP实现表单数据保存
表单HTML部分
创建一个HTML表单,包含需要提交的字段,例如用户名、邮箱和留言:
<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>
<label for="message">留言:</label>
<textarea id="message" name="message" required></textarea>
<button type="submit">提交</button>
</form>
处理表单的PHP脚本(process_form.php)
接收表单数据并进行基本验证后保存:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// 获取并清理表单数据
$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
$message = htmlspecialchars($_POST['message']);
// 验证邮箱格式
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
die("无效的邮箱格式");
}
// 保存到文件
$data = "用户名: $name\n邮箱: $email\n留言: $message\n\n";
file_put_contents('form_submissions.txt', $data, FILE_APPEND);
// 或者保存到数据库(MySQL示例)
/*
$conn = new mysqli('localhost', 'username', 'password', 'database');
$stmt = $conn->prepare("INSERT INTO form_data (name, email, message) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $name, $email, $message);
$stmt->execute();
$stmt->close();
$conn->close();
*/
echo "表单提交成功!";
}
?>
数据验证增强
添加更全面的验证逻辑:

// 检查必填字段
$required = ['name', 'email', 'message'];
foreach ($required as $field) {
if (empty($_POST[$field])) {
die("请填写所有必填字段");
}
}
// 检查字符串长度
if (strlen($_POST['name']) > 50) {
die("用户名过长");
}
防止跨站脚本攻击(XSS)
对所有输出数据进行转义:
echo htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8');
文件上传处理
如果需要处理文件上传:
if (isset($_FILES['file'])) {
$allowed = ['jpg', 'png', 'pdf'];
$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
if (!in_array($extension, $allowed)) {
die("不允许的文件类型");
}
move_uploaded_file($_FILES['file']['tmp_name'], "uploads/" . basename($_FILES['file']['name']));
}
安全建议
- 对数据库操作使用预处理语句防止SQL注入
- 设置CSRF令牌防止跨站请求伪造
- 对敏感数据进行加密存储
- 限制表单提交频率防止滥用






