用php实现留言板
使用PHP实现留言板
数据库设计
创建一个MySQL数据库表来存储留言信息。表结构可以包含以下字段:
id:留言的唯一标识,自增主键name:留言者姓名email:留言者邮箱message:留言内容created_at:留言时间
CREATE TABLE messages (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100),
message TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
数据库连接
创建一个PHP文件(如config.php)来管理数据库连接:
<?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("Database connection failed: " . $e->getMessage());
}
?>
提交留言表单
创建一个HTML表单(index.php)让用户提交留言:
<!DOCTYPE html>
<html>
<head>
<title>留言板</title>
</head>
<body>
<h1>留言板</h1>
<form action="post_message.php" method="post">
<label for="name">姓名:</label>
<input type="text" id="name" name="name" required><br>
<label for="email">邮箱:</label>
<input type="email" id="email" name="email"><br>
<label for="message">留言内容:</label>
<textarea id="message" name="message" required></textarea><br>
<button type="submit">提交留言</button>
</form>
<?php include 'display_messages.php'; ?>
</body>
</html>
处理留言提交
创建post_message.php处理表单提交:
<?php
require 'config.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
$message = htmlspecialchars($_POST['message']);
try {
$stmt = $pdo->prepare("INSERT INTO messages (name, email, message) VALUES (?, ?, ?)");
$stmt->execute([$name, $email, $message]);
header("Location: index.php");
exit();
} catch (PDOException $e) {
die("留言提交失败: " . $e->getMessage());
}
}
?>
显示留言
创建display_messages.php显示所有留言:

<?php
require 'config.php';
try {
$stmt = $pdo->query("SELECT * FROM messages ORDER BY created_at DESC");
$messages = $stmt->fetchAll(PDO::FETCH_ASSOC);
if ($messages) {
echo '<h2>留言列表</h2>';
echo '<ul>';
foreach ($messages as $message) {
echo '<li>';
echo '<strong>' . htmlspecialchars($message['name']) . '</strong>';
if ($message['email']) {
echo ' (' . htmlspecialchars($message['email']) . ')';
}
echo '<p>' . htmlspecialchars($message['message']) . '</p>';
echo '<small>' . $message['created_at'] . '</small>';
echo '</li>';
}
echo '</ul>';
} else {
echo '<p>暂无留言</p>';
}
} catch (PDOException $e) {
die("获取留言失败: " . $e->getMessage());
}
?>
安全注意事项
- 使用
htmlspecialchars()防止XSS攻击 - 使用预处理语句防止SQL注入
- 对用户输入进行验证
- 考虑添加CSRF保护
- 在生产环境中使用HTTPS
扩展功能建议
- 添加分页功能
- 实现管理员回复功能
- 添加留言审核机制
- 实现用户注册和登录
- 添加图片上传功能
- 实现留言搜索功能
这个基本实现提供了留言板的核心功能,可以根据需要进一步扩展和完善。






