当前位置:首页 > PHP

php实现留言板

2026-02-27 13:46:25PHP

PHP 留言板实现步骤

数据库设计

创建一个名为 messages 的数据库表,包含以下字段:

  • id:主键,自增
  • name:留言者姓名,VARCHAR(50)
  • email:留言者邮箱,VARCHAR(100)
  • content:留言内容,TEXT
  • created_at:留言时间,TIMESTAMP

SQL 创建语句示例:

CREATE TABLE messages (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL,
    content TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

连接数据库

创建 config.php 文件存放数据库连接信息:

<?php
$host = 'localhost';
$dbname = 'message_board';
$username = 'root';
$password = '';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("数据库连接失败: " . $e->getMessage());
}
?>

提交留言功能

创建 submit.php 处理表单提交:

<?php
require 'config.php';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = htmlspecialchars($_POST['name']);
    $email = htmlspecialchars($_POST['email']);
    $content = htmlspecialchars($_POST['content']);

    $stmt = $pdo->prepare("INSERT INTO messages (name, email, content) VALUES (?, ?, ?)");
    $stmt->execute([$name, $email, $content]);

    header("Location: index.php");
    exit;
}
?>

显示留言列表

创建 index.php 显示所有留言:

<?php
require 'config.php';

$stmt = $pdo->query("SELECT * FROM messages ORDER BY created_at DESC");
$messages = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>

<!DOCTYPE html>
<html>
<head>
    <title>留言板</title>
</head>
<body>
    <h1>留言板</h1>

    <form action="submit.php" method="post">
        姓名: <input type="text" name="name" required><br>
        邮箱: <input type="email" name="email" required><br>
        内容: <textarea name="content" required></textarea><br>
        <button type="submit">提交</button>
    </form>

    <hr>

    <?php foreach ($messages as $message): ?>
        <div>
            <h3><?= $message['name'] ?> (<?= $message['email'] ?>)</h3>
            <p><?= $message['content'] ?></p>
            <small><?= $message['created_at'] ?></small>
        </div>
        <hr>
    <?php endforeach; ?>
</body>
</html>

安全增强措施

对输入数据进行过滤和验证:

$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
$content = filter_input(INPUT_POST, 'content', FILTER_SANITIZE_STRING);

if (!$email) {
    die("无效的邮箱地址");
}

分页功能实现

修改查询语句实现分页:

$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$perPage = 5;
$offset = ($page - 1) * $perPage;

$stmt = $pdo->prepare("SELECT * FROM messages ORDER BY created_at DESC LIMIT :offset, :perPage");
$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
$stmt->bindParam(':perPage', $perPage, PDO::PARAM_INT);
$stmt->execute();

样式美化

添加基础CSS样式:

php实现留言板

body {
    font-family: Arial, sans-serif;
    max-width: 800px;
    margin: 0 auto;
    padding: 20px;
}

form {
    margin-bottom: 20px;
}

input, textarea {
    width: 100%;
    margin-bottom: 10px;
}

textarea {
    height: 100px;
}

部署注意事项

  1. 确保服务器支持PHP和MySQL
  2. 设置正确的数据库权限
  3. 在生产环境中使用HTTPS加密传输
  4. 定期备份数据库
  5. 考虑添加验证码防止垃圾留言

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

相关文章

git php实现

git php实现

Git 与 PHP 的集成实现 使用 PHP 执行 Git 命令 通过 PHP 的 exec()、shell_exec() 或 passthru() 函数可以直接调用 Git 命令,适用于服务器端操作…

php如何实现直播

php如何实现直播

实现直播功能的方法 PHP可以通过结合其他技术和工具来实现直播功能。以下是几种常见的方法: 使用流媒体服务器 配置流媒体服务器如Nginx-RTMP、Red5或Wowza。这些服务器支持RTMP协…

php实现静态

php实现静态

静态化实现方法 PHP实现静态化主要通过生成HTML文件或缓存机制来减少服务器动态解析的开销。以下是几种常见方法: 生成静态HTML文件 通过file_put_contents()将动态内容保存为H…

php无限分类的实现

php无限分类的实现

PHP无限分类的实现 无限分类是一种常见的树形结构数据组织方式,适用于商品分类、菜单管理、地区选择等场景。以下是几种实现方法: 递归实现法 递归是最直观的实现方式,通过函数自身调用来遍历子分类。数据…

php实现统计

php实现统计

PHP 实现统计功能 在 PHP 中实现统计功能通常涉及数据的收集、处理和展示。以下是一些常见的统计实现方法: 数据库数据统计 通过 SQL 查询可以直接从数据库中获取统计结果: $conn =…

php实现mvc

php实现mvc

PHP 实现 MVC 架构 MVC(Model-View-Controller)是一种常用的软件设计模式,将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller…