php实现留言板
实现留言板的基本步骤
使用PHP实现留言板需要创建数据库、设计表单、处理提交数据以及显示留言。以下是一个简单的实现方案。
数据库设计
创建MySQL数据库表存储留言信息,表结构如下:
CREATE TABLE messages (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100),
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
连接数据库
创建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("数据库连接失败: " . $e->getMessage());
}
?>
留言表单页面
创建index.php文件包含表单和留言展示:
<?php include 'config.php'; ?>
<!DOCTYPE html>
<html>
<head>
<title>留言板</title>
</head>
<body>
<h1>留言板</h1>
<!-- 留言表单 -->
<form method="post" action="post_message.php">
<input type="text" name="name" placeholder="您的姓名" required>
<input type="email" name="email" placeholder="您的邮箱">
<textarea name="content" placeholder="留言内容" required></textarea>
<button type="submit">提交留言</button>
</form>
<!-- 留言列表 -->
<div class="messages">
<?php
$stmt = $pdo->query("SELECT * FROM messages ORDER BY created_at DESC");
while ($row = $stmt->fetch()) {
echo "<div class='message'>";
echo "<h3>{$row['name']}</h3>";
echo "<p>{$row['content']}</p>";
echo "<small>{$row['created_at']}</small>";
echo "</div>";
}
?>
</div>
</body>
</html>
处理留言提交
创建post_message.php文件处理表单提交:

<?php
include 'config.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
$content = htmlspecialchars($_POST['content']);
try {
$stmt = $pdo->prepare("INSERT INTO messages (name, email, content) VALUES (?, ?, ?)");
$stmt->execute([$name, $email, $content]);
header("Location: index.php");
exit();
} catch (PDOException $e) {
die("留言提交失败: " . $e->getMessage());
}
}
?>
安全增强措施
添加CSRF防护和输入验证:
// 在config.php中添加
session_start();
if (empty($_SESSION['token'])) {
$_SESSION['token'] = bin2hex(random_bytes(32));
}
// 在表单中添加
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>">
// 在post_message.php中验证
if (!isset($_POST['token']) || $_POST['token'] !== $_SESSION['token']) {
die("非法请求");
}
样式美化
添加CSS样式提升用户体验:
<style>
body { font-family: Arial, sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; }
form { margin-bottom: 30px; }
input, textarea { display: block; width: 100%; margin-bottom: 10px; padding: 8px; }
button { background: #4CAF50; color: white; border: none; padding: 10px 15px; cursor: pointer; }
.message { border-bottom: 1px solid #eee; padding: 15px 0; }
</style>
这个实现包含了留言板的基本功能,可以根据需要进一步扩展,如添加分页、回复功能或管理员界面。






