php实现公告
PHP实现公告功能
公告功能通常包括公告的发布、显示和管理。以下是一个简单的PHP实现公告功能的方法。
数据库设计
创建一个公告表,包含标题、内容、发布时间等字段。
CREATE TABLE announcements (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
发布公告
创建一个表单页面用于发布公告,表单提交后将数据插入数据库。
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$title = $_POST['title'];
$content = $_POST['content'];
$stmt = $pdo->prepare("INSERT INTO announcements (title, content) VALUES (?, ?)");
$stmt->execute([$title, $content]);
header("Location: announcements.php");
exit;
}
?>
<form method="post">
<input type="text" name="title" placeholder="公告标题" required>
<textarea name="content" placeholder="公告内容" required></textarea>
<button type="submit">发布公告</button>
</form>
显示公告
从数据库查询公告并显示在页面上。
<?php
$stmt = $pdo->query("SELECT * FROM announcements ORDER BY created_at DESC");
$announcements = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($announcements as $announcement) {
echo "<h3>{$announcement['title']}</h3>";
echo "<p>{$announcement['content']}</p>";
echo "<small>发布于: {$announcement['created_at']}</small>";
}
?>
管理公告
提供删除或编辑公告的功能。
<?php
if (isset($_GET['delete'])) {
$id = $_GET['delete'];
$pdo->prepare("DELETE FROM announcements WHERE id = ?")->execute([$id]);
header("Location: announcements.php");
exit;
}
foreach ($announcements as $announcement) {
echo "<div>";
echo "<h3>{$announcement['title']}</h3>";
echo "<p>{$announcement['content']}</p>";
echo "<a href='edit.php?id={$announcement['id']}'>编辑</a>";
echo "<a href='?delete={$announcement['id']}' onclick='return confirm(\"确定删除?\")'>删除</a>";
echo "</div>";
}
?>
安全注意事项
确保对用户输入进行验证和过滤,防止SQL注入和XSS攻击。
$title = htmlspecialchars($_POST['title']);
$content = htmlspecialchars($_POST['content']);
通过以上步骤,可以实现一个基本的公告功能。根据需求可以进一步扩展,如添加分类、置顶、分页等功能。







