当前位置:首页 > PHP

php实现简单留言板

2026-04-03 12:33:44PHP

数据库设计

创建一个MySQL数据库表存储留言信息,表结构可设计如下:

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

前端表单

构建HTML表单用于提交留言:

php实现简单留言板

<form method="post" action="submit.php">
    <input type="text" name="username" placeholder="您的姓名" required>
    <textarea name="content" placeholder="留言内容" required></textarea>
    <button type="submit">提交留言</button>
</form>

处理提交数据

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

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $username = htmlspecialchars($_POST['username']);
    $content = htmlspecialchars($_POST['content']);

    $conn = new mysqli('localhost', 'username', 'password', 'database_name');
    if ($conn->connect_error) {
        die("连接失败: " . $conn->connect_error);
    }

    $stmt = $conn->prepare("INSERT INTO messages (username, content) VALUES (?, ?)");
    $stmt->bind_param("ss", $username, $content);
    $stmt->execute();
    $stmt->close();
    $conn->close();

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

显示留言列表

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

php实现简单留言板

<?php
$conn = new mysqli('localhost', 'username', 'password', 'database_name');
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

$result = $conn->query("SELECT * FROM messages ORDER BY created_at DESC");
while ($row = $result->fetch_assoc()) {
    echo '<div class="message">';
    echo '<h3>' . htmlspecialchars($row['username']) . '</h3>';
    echo '<p>' . htmlspecialchars($row['content']) . '</p>';
    echo '<small>' . $row['created_at'] . '</small>';
    echo '</div>';
}
$conn->close();
?>

安全增强

添加CSRF防护和输入验证:

session_start();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {
        die("CSRF验证失败");
    }

    // 其他验证逻辑...
}
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));

样式优化

添加基础CSS美化留言板:

.message {
    border: 1px solid #ddd;
    padding: 15px;
    margin-bottom: 10px;
    border-radius: 5px;
}
form {
    margin-bottom: 20px;
}
textarea {
    width: 100%;
    min-height: 100px;
}

标签: 留言板简单
分享给朋友:

相关文章

vue实现简单弹幕效果

vue实现简单弹幕效果

实现基础弹幕效果 在Vue中实现弹幕效果需要结合CSS动画和动态数据渲染。以下是一个基础实现方案: 模板部分 <template> <div class="danmu-con…

vue实现简单登录功能

vue实现简单登录功能

实现登录功能的基本步骤 安装Vue及相关依赖,确保项目环境配置正确。使用Vue CLI创建项目或直接在现有项目中集成Vue。 创建登录表单组件,包含用户名和密码输入框。使用v-model实现双向数据…

vue简单实现瀑布流

vue简单实现瀑布流

vue实现瀑布流的方法 使用Vue实现瀑布流布局可以通过CSS或JavaScript库完成。以下是几种常见方法: 使用CSS columns属性 CSS columns属性可以快速实现瀑布流效果,适…

css3制作简单动画

css3制作简单动画

CSS3 制作简单动画的方法 CSS3 提供了多种方式制作动画,主要包括 transition 和 animation 两种核心方法。以下是具体实现方式: 使用 transition 实现过渡动画…

php简单实现

php简单实现

PHP 简单实现 PHP 是一种广泛使用的服务器端脚本语言,适合快速开发动态网页。以下是一些基础功能的简单实现示例。 基础语法 PHP 代码通常嵌入在 HTML 中,以 <?php 开始,以…

js实现简单计算器

js实现简单计算器

实现基础功能 创建一个HTML文件,包含数字按钮、运算符按钮和显示结果的输入框。基本结构如下: <!DOCTYPE html> <html> <head>…