当前位置:首页 > PHP

php实现提交留言

2026-02-16 21:08:45PHP

PHP 实现提交留言功能

创建 HTML 表单

创建一个简单的 HTML 表单,用于用户输入留言内容。表单需要包含姓名、邮箱和留言内容字段,并设置 method="post" 提交到 PHP 处理页面。

php实现提交留言

<form action="submit_message.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>

    <label for="message">留言内容:</label>
    <textarea id="message" name="message" required></textarea>

    <button type="submit">提交留言</button>
</form>

处理表单提交的 PHP 代码

创建一个名为 submit_message.php 的文件,用于接收表单数据并进行处理。首先验证数据,然后将留言存储到数据库或文件中。

php实现提交留言

<?php
// 检查表单是否通过 POST 方法提交
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("邮箱格式不正确");
    }

    // 连接数据库(以 MySQL 为例)
    $servername = "localhost";
    $username = "username";
    $password = "password";
    $dbname = "database_name";

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

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

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

    // 执行 SQL 语句
    if ($stmt->execute()) {
        echo "留言提交成功";
    } else {
        echo "留言提交失败: " . $stmt->error;
    }

    // 关闭数据库连接
    $stmt->close();
    $conn->close();
}
?>

存储留言到文件

如果不使用数据库,可以将留言存储到文本文件中。

<?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("messages.txt", $data, FILE_APPEND);

    echo "留言提交成功";
}
?>

显示留言列表

创建一个页面显示所有留言,从数据库或文件中读取数据并展示。

<?php
// 从数据库读取留言
$conn = new mysqli("localhost", "username", "password", "database_name");
if ($conn->connect_error) {
    die("数据库连接失败: " . $conn->connect_error);
}

$result = $conn->query("SELECT name, email, message FROM messages ORDER BY id DESC");

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        echo "<div>";
        echo "<h3>" . htmlspecialchars($row["name"]) . "</h3>";
        echo "<p>" . htmlspecialchars($row["email"]) . "</p>";
        echo "<p>" . htmlspecialchars($row["message"]) . "</p>";
        echo "</div>";
    }
} else {
    echo "暂无留言";
}

$conn->close();
?>

安全注意事项

确保对用户输入进行验证和转义,防止 SQL 注入和 XSS 攻击。使用 htmlspecialchars() 函数转义输出内容,并使用预处理语句处理数据库查询。

标签: 留言php
分享给朋友:

相关文章

php实现增删改查

php实现增删改查

以下是在PHP中实现增删改查(CRUD)操作的详细方法,以MySQL数据库为例: 数据库连接配置 创建config.php文件存储数据库连接信息: <?php $host = 'localh…

php实现一个

php实现一个

PHP 实现一个简单的计算器 创建一个基本的计算器,支持加、减、乘、除运算。以下是一个完整的实现代码示例: <?php $result = ""; if ($_SERVER["REQUES…

php实现支付宝支付

php实现支付宝支付

支付宝支付集成步骤 准备工作 在开始集成支付宝支付前,确保已注册支付宝开放平台账号并完成企业实名认证。创建应用后获取APPID、应用私钥和支付宝公钥。 配置支付宝SDK 通过Composer安装支付…

php实现秒杀

php实现秒杀

PHP实现秒杀功能的关键技术 秒杀系统需要解决高并发、数据一致性、系统稳定性等问题。以下是PHP实现秒杀功能的核心技术方案: 数据库优化 使用InnoDB引擎的行级锁和事务特性,确保数据一致性。商品…

php实现单例模式

php实现单例模式

单例模式的概念 单例模式是一种创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于数据库连接、日志记录器等需要全局唯一实例的场景。 PHP实现单例模式的关键步骤 私有化构造函…

php实现扫码登录

php实现扫码登录

PHP 实现扫码登录的方案 扫码登录通常基于以下流程:用户访问网页生成二维码(含唯一标识),手机扫码后确认登录,服务器验证并完成登录状态同步。以下是具体实现方法: 生成二维码与唯一标识 使用 PHP…