php实现表单保存
PHP 表单保存实现
创建 HTML 表单
在 HTML 文件中创建一个表单,设置 method="post" 或 method="get",并指定 action 属性为处理表单的 PHP 文件。
<form action="process_form.php" method="post">
<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 或 $_GET 超全局变量获取表单数据,并进行验证和保存。
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
$email = $_POST['email'];
// 验证数据
if (empty($name) || empty($email)) {
echo "姓名和邮箱不能为空";
exit;
}
// 保存数据到文件
$data = "姓名: $name, 邮箱: $email\n";
file_put_contents('form_data.txt', $data, FILE_APPEND);
echo "表单数据已保存";
}
?>
保存数据到数据库
如果需要将数据保存到数据库,可以使用 MySQLi 或 PDO 扩展。
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 准备 SQL 语句
$stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $email);
// 设置参数并执行
$name = $_POST['name'];
$email = $_POST['email'];
$stmt->execute();
echo "数据已保存到数据库";
$stmt->close();
$conn->close();
?>
数据验证与过滤
为确保数据安全,应对输入数据进行验证和过滤。
$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "无效的邮箱格式";
exit;
}
防止 SQL 注入
使用预处理语句和参数化查询可以有效防止 SQL 注入攻击。
$stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $email);
文件上传处理
如果表单包含文件上传,需使用 $_FILES 超全局变量处理。
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["file"]["name"]);
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
echo "文件上传成功";
} else {
echo "文件上传失败";
}
返回响应
处理完成后,可以重定向用户或返回成功消息。
header("Location: thank_you.php");
exit;
通过以上步骤,可以实现 PHP 表单数据的接收、验证、保存和处理。







