php实现表单保存
PHP 表单保存实现
创建 HTML 表单
构建一个包含必要字段的 HTML 表单,确保设置正确的 method 和 action 属性。表单通常使用 POST 方法提交数据。
<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 文件中接收并处理表单提交的数据。使用 $_POST 超全局变量获取表单字段值。

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
// 数据验证
if (empty($name) || empty($email) || empty($message)) {
die("所有字段必须填写");
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
die("邮箱格式无效");
}
}
?>
保存数据到数据库
将验证通过的表单数据存储到 MySQL 数据库。确保先建立数据库连接。
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 准备并绑定
$stmt = $conn->prepare("INSERT INTO form_data (name, email, message) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $name, $email, $message);
// 执行
if ($stmt->execute()) {
echo "数据保存成功";
} else {
echo "错误: " . $stmt->error;
}
$stmt->close();
$conn->close();
?>
保存数据到文件
作为替代方案,可以将表单数据保存到文本文件中。

<?php
$data = "姓名: $name\n邮箱: $email\n留言: $message\n\n";
$file = 'form_submissions.txt';
if (file_put_contents($file, $data, FILE_APPEND | LOCK_EX)) {
echo "数据已保存";
} else {
echo "保存失败";
}
?>
安全注意事项
处理表单数据时需考虑安全性,防止 SQL 注入和 XSS 攻击。
<?php
// 转义输出
$name = htmlspecialchars($name);
$email = htmlspecialchars($email);
$message = htmlspecialchars($message);
// 使用预处理语句防止SQL注入
// 如上文数据库示例中所示
?>
发送邮件通知
可选择在表单提交后发送邮件通知。
<?php
$to = "admin@example.com";
$subject = "新表单提交";
$body = "姓名: $name\n邮箱: $email\n留言: $message";
if (mail($to, $subject, $body)) {
echo "邮件已发送";
} else {
echo "邮件发送失败";
}
?>
以上方法提供了从基础表单创建到数据保存的完整流程,可根据实际需求选择适合的存储方式。






