主题
  • 默认模式
  • 浅蓝色模式
  • 淡绿色模式
  • 深夜模式

PHP 表单数据持久化

表单数据持久化是指在用户提交表单后,将数据保存到持久存储介质(如数据库、文件等)中,以便后续检索和使用。

本章节将详细介绍 PHP 中常见的表单数据持久化实现方法,主要包括以下四种方式:将数据保存到数据库、写入文件、使用 Session 临时存储以及通过 Cookie 保存 等多种方式。


保存到数据库(MySQL为例)

✅ 这是一个将表单数据存储到关系型数据库(如 MySQL)中,实现长期保存和高效查询的实例代码:

<?php
// 连接数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 获取表单数据
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];

// 准备 SQL 并绑定参数
$stmt = $conn->prepare("INSERT INTO contacts (name, email, message) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $name, $email, $message);

// 执行 SQL
if ($stmt->execute()) {
    echo "记录插入成功";
} else {
    echo "错误: " . $stmt->error;
}

// 关闭连接
$stmt->close();
$conn->close();
?>

✅ 代码解释说明:

  • 创建数据库连接 - 使用 MySQLi 扩展创建数据库连接
  • 连接错误检查 - 检测连接是否成功,如果连接失败,使用die()终止脚本并显示错误信息
  • 获取表单数据 - 从 POST 请求中获取表单提交的数据
  • 预处理 SQL 语句 - 使用prepare()方法准备 SQL 语句,使用问号?作为参数占位符,防止 SQL 注入
  • 绑定参数 - 将变量绑定到预处理语句中的参数
  • 执行 SQL 语句 - 执行预处理语句
  • 关闭连接 - 关闭预处理语句,关闭数据库连接

保存到文件

✅ 这是一个将表单数据写入文本文件或 CSV 文件等,提供简单的数据存储方案的实例代码:

<?php
// 获取表单数据
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];

// 准备要保存的数据
$data = "Name: $name\nEmail: $email\nMessage: $message\n\n";

// 将数据追加到文件
file_put_contents('form_data.txt', $data, FILE_APPEND);

echo "数据已保存";
?>

✅ 代码解释说明:

  • 获取表单数据 - 通过$_POST超全局数组获取表单提交的数据
  • 准备要保存的数据 - 将获取的数据格式化为易读的字符串
  • 保存数据到文件 - 使用file_put_contents()函数将数据追加到文件
  • 返回响应 - 向用户显示简单的成功消息

使用 Session 临时保存

✅ 这是一个利用 PHP 的 Session 机制在服务器端临时存储用户数据的实例代码:

<?php
session_start();

// 保存表单数据到Session
$_SESSION['form_data'] = $_POST;

// 可以在其他页面通过$_SESSION['form_data']访问这些数据
echo "数据已临时保存";
?>

✅ 代码解释说明:

  • session_start() - 启动或恢复会话,这是使用 Session 变量的前提条件
  • $_SESSION['form_data'] = $_POST - 将表单通过 POST 方法提交的所有数据保存到 Session 变量中
  • echo "数据已临时保存" - 输出一条消息,告知用户数据已保存

使用 Cookie 保存

✅ 这是一个通过客户端 Cookie 存储小量数据,实现跨页面数据传递的实例代码:

<?php
// 保存到Cookie(有效期1小时)
setcookie('user_name', $_POST['name'], time() + 3600);
setcookie('user_email', $_POST['email'], time() + 3600);

echo "数据已保存到 Cookie";
?>

✅ 代码解释说明:

  • setcookie('user_name', $_POST['name'], time() + 3600) - 将$_POST['name'](用户通过表单提交的 name 字段)保存到名为user_name的 Cookie 中。
  • setcookie('user_email', $_POST['email'], time() + 3600) - 将 $_POST['email'](用户通过表单提交的 email 字段)保存到名为user_email的 Cookie 中。
  • echo "数据已保存到 Cookie" - 输出提示信息,告知用户数据已成功保存到 Cookie


评论区 0
发表评论