php实现电子公告牌
PHP 实现电子公告牌系统
电子公告牌(BBS)系统是一个常见的网络应用,允许用户发布、查看和管理公告信息。以下是使用PHP实现电子公告牌系统的关键步骤和代码示例。
数据库设计
创建一个简单的数据库表存储公告信息:
CREATE TABLE announcements (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
author VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
连接数据库
使用PHP的PDO扩展连接MySQL数据库:

$host = 'localhost';
$dbname = 'bbs_db';
$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());
}
发布公告功能
创建表单页面(post_announcement.php):
<form action="submit_announcement.php" method="post">
<input type="text" name="title" placeholder="公告标题" required>
<textarea name="content" placeholder="公告内容" required></textarea>
<input type="text" name="author" placeholder="发布者" required>
<button type="submit">发布</button>
</form>
处理提交的公告(submit_announcement.php):

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$title = $_POST['title'];
$content = $_POST['content'];
$author = $_POST['author'];
$stmt = $pdo->prepare("INSERT INTO announcements (title, content, author) VALUES (?, ?, ?)");
$stmt->execute([$title, $content, $author]);
header("Location: index.php");
exit;
}
显示公告列表
创建首页显示所有公告(index.php):
$stmt = $pdo->query("SELECT * FROM announcements ORDER BY created_at DESC");
$announcements = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($announcements as $announcement) {
echo "<div class='announcement'>";
echo "<h3>{$announcement['title']}</h3>";
echo "<p>{$announcement['content']}</p>";
echo "<small>发布者: {$announcement['author']} | 发布时间: {$announcement['created_at']}</small>";
echo "</div>";
}
删除公告功能
添加删除按钮(需要权限验证):
// 在显示公告的循环中添加
if ($isAdmin) { // 假设$isAdmin是管理员标志
echo "<form action='delete_announcement.php' method='post'>";
echo "<input type='hidden' name='id' value='{$announcement['id']}'>";
echo "<button type='submit'>删除</button>";
echo "</form>";
}
删除处理(delete_announcement.php):
if ($_SERVER['REQUEST_METHOD'] === 'POST' && $isAdmin) {
$id = $_POST['id'];
$stmt = $pdo->prepare("DELETE FROM announcements WHERE id = ?");
$stmt->execute([$id]);
header("Location: index.php");
exit;
}
安全注意事项
- 使用预处理语句防止SQL注入
- 对用户输入进行过滤和验证
- 实现用户认证和授权系统
- 对敏感操作(如删除)进行CSRF防护
扩展功能建议
- 添加公告分类功能
- 实现公告搜索功能
- 添加评论系统
- 支持富文本编辑器
- 实现公告置顶功能
这个基础实现可以根据具体需求进行扩展和完善,建议使用框架(如Laravel或Symfony)开发更复杂的公告牌系统。






