当前位置:首页 > PHP

php实现简单留言板

2026-02-14 04:33:08PHP

创建数据库表

留言板需要一个数据库表存储留言信息,通常包含字段如id、用户名、留言内容、留言时间等。以下为MySQL创建表的SQL语句:

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

连接数据库

使用PDO连接MySQL数据库,确保在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());
}

提交留言功能

创建一个HTML表单用于提交留言,后端处理表单数据并存入数据库:

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

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

显示留言列表

从数据库中查询留言并按时间倒序显示:

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

foreach ($messages as $message) {
    echo "<div class='message'>";
    echo "<h3>" . htmlspecialchars($message['username']) . "</h3>";
    echo "<p>" . nl2br(htmlspecialchars($message['content'])) . "</p>";
    echo "<small>" . $message['created_at'] . "</small>";
    echo "</div>";
}

前端界面

简单的HTML表单和CSS样式可以提升用户体验:

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

<style>
    .message {
        border: 1px solid #ddd;
        padding: 10px;
        margin-bottom: 10px;
    }
    textarea {
        width: 100%;
        height: 100px;
    }
</style>

安全增强

对输入数据进行过滤和转义,防止XSS攻击。使用预处理语句防止SQL注入。可以添加验证码防止垃圾留言。

// 示例:简单的长度验证
if (strlen($content) > 500) {
    die("留言内容过长");
}

分页功能

当留言数量较多时,添加分页功能:

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

$stmt = $pdo->prepare("SELECT * FROM messages ORDER BY created_at DESC LIMIT ? OFFSET ?");
$stmt->bindValue(1, $perPage, PDO::PARAM_INT);
$stmt->bindValue(2, $offset, PDO::PARAM_INT);
$stmt->execute();

php实现简单留言板

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

相关文章

简单实现vue

简单实现vue

Vue 的基本实现 创建一个简单的 Vue 应用需要引入 Vue 库,并编写基本的模板和数据绑定逻辑。 <!DOCTYPE html> <html lang="en"> &…

vue增删改查简单实现

vue增删改查简单实现

Vue 增删改查简单实现 以下是一个基于 Vue 3 的简单增删改查(CRUD)实现示例,使用 Vue 的 Composition API 和响应式数据管理。 初始化项目 确保已安装 Vue…

简单实现vue github

简单实现vue github

实现 Vue 项目并托管到 GitHub 的步骤 创建 Vue 项目 使用 Vue CLI 快速初始化项目,确保已安装 Node.js 和 npm/yarn。 运行命令: npm init vu…

vue实现简单搜索

vue实现简单搜索

Vue 实现简单搜索功能 数据绑定与输入框 在 Vue 中实现搜索功能,通常使用 v-model 绑定输入框的值到数据属性。创建一个输入框用于用户输入搜索关键词: <template>…

vue实现简单登录

vue实现简单登录

使用 Vue 实现简单登录功能 创建 Vue 项目 确保已安装 Vue CLI,通过以下命令创建新项目: vue create vue-login-demo 选择默认配置或手动配置(如 Babel…

vue简单实现删除

vue简单实现删除

Vue 删除功能实现 使用 v-for 和 splice 方法删除数组元素 <template> <div> <ul> <li v…