当前位置:首页 > PHP

php实现电子公告牌

2026-04-03 14:01:44PHP

实现电子公告牌的基本功能

使用PHP和MySQL可以快速搭建一个电子公告牌系统。以下是一个基础实现方案:

数据库设计

创建名为notice_board的数据库,包含一个notices表:

CREATE TABLE notices (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    content TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

连接数据库

创建config.php文件处理数据库连接:

<?php
$host = 'localhost';
$dbname = 'notice_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());
}
?>

发布公告功能

创建create.php处理公告发布:

<?php
require 'config.php';

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

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

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

<form method="post">
    <input type="text" name="title" placeholder="公告标题" required>
    <textarea name="content" placeholder="公告内容" required></textarea>
    <button type="submit">发布公告</button>
</form>

显示公告列表

创建index.php显示所有公告:

<?php
require 'config.php';

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

<h1>电子公告牌</h1>
<a href="create.php">发布新公告</a>

<?php foreach ($notices as $notice): ?>
    <div class="notice">
        <h2><?= htmlspecialchars($notice['title']) ?></h2>
        <p><?= nl2br(htmlspecialchars($notice['content'])) ?></p>
        <small>发布时间: <?= $notice['created_at'] ?></small>
    </div>
<?php endforeach; ?>

安全增强措施

为防止XSS攻击,所有输出内容都应使用htmlspecialchars()过滤:

$title = htmlspecialchars($_POST['title'], ENT_QUOTES, 'UTF-8');

使用预处理语句防止SQL注入:

$stmt = $pdo->prepare("INSERT INTO notices (title, content) VALUES (:title, :content)");
$stmt->bindParam(':title', $title);
$stmt->bindParam(':content', $content);
$stmt->execute();

扩展功能建议

添加用户认证系统限制发布权限:

session_start();
if (!isset($_SESSION['user_id'])) {
    header("Location: login.php");
    exit;
}

实现公告编辑和删除功能:

// 删除公告
$stmt = $pdo->prepare("DELETE FROM notices WHERE id = ?");
$stmt->execute([$id]);

// 更新公告
$stmt = $pdo->prepare("UPDATE notices SET title = ?, content = ? WHERE id = ?");
$stmt->execute([$title, $content, $id]);

添加分页功能提升性能:

php实现电子公告牌

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

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

这个基础实现可以根据需求进一步扩展,如添加分类标签、评论功能或附件上传等。

标签: 电子公告php
分享给朋友:

相关文章

php实现树

php实现树

PHP实现树结构的方法 在PHP中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class Tr…

php实现栈

php实现栈

栈的基本概念 栈(Stack)是一种遵循后进先出(LIFO)原则的数据结构。核心操作包括: push:元素入栈。 pop:元素出栈(返回并移除栈顶元素)。 peek:查看栈顶元素…

php验证码实现

php验证码实现

验证码实现方法 在PHP中实现验证码功能通常涉及生成随机字符串或数字,将其转换为图像,并通过会话(Session)进行验证。以下是几种常见的实现方式: 使用GD库生成图像验证码 GD库是PHP内置的…

php实现一个

php实现一个

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

php 函数实现

php 函数实现

PHP 函数实现基础 PHP 函数的定义使用 function 关键字,后跟函数名和参数列表。函数名不区分大小写,但建议保持一致。 function functionName($param1, $p…

php mvc实现

php mvc实现

PHP MVC 实现步骤 模型(Model)层 模型负责数据处理和业务逻辑,通常与数据库交互。创建一个基类模型,其他具体模型继承它。 class Model { protected $db;…