php 实现留言
PHP 实现留言功能
要实现一个简单的留言功能,需要创建数据库表、编写表单页面和处理提交数据的 PHP 脚本。以下是具体实现步骤:
数据库表设计
创建一个名为 messages 的表,包含以下字段:
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
);
留言表单页面
创建一个 HTML 表单用于提交留言:
<form action="submit_message.php" method="post">
<div>
<label for="name">姓名:</label>
<input type="text" id="name" name="name" required>
</div>
<div>
<label for="email">邮箱:</label>
<input type="email" id="email" name="email">
</div>
<div>
<label for="content">留言内容:</label>
<textarea id="content" name="content" required></textarea>
</div>
<button type="submit">提交留言</button>
</form>
处理留言提交
创建 submit_message.php 处理表单提交:
<?php
// 连接数据库
$db = new PDO('mysql:host=localhost;dbname=your_db_name', 'username', 'password');
// 获取表单数据
$name = $_POST['name'];
$email = $_POST['email'] ?? null;
$content = $_POST['content'];
// 插入数据
$stmt = $db->prepare("INSERT INTO messages (name, email, content) VALUES (?, ?, ?)");
$stmt->execute([$name, $email, $content]);
// 重定向回留言页面
header('Location: message_form.php');
exit;
?>
显示留言列表
创建 messages.php 显示所有留言:

<?php
$db = new PDO('mysql:host=localhost;dbname=your_db_name', 'username', 'password');
$messages = $db->query("SELECT * FROM messages ORDER BY created_at DESC")->fetchAll();
?>
<ul>
<?php foreach ($messages as $message): ?>
<li>
<h3><?= htmlspecialchars($message['name']) ?></h3>
<p><?= htmlspecialchars($message['content']) ?></p>
<small><?= $message['created_at'] ?></small>
</li>
<?php endforeach; ?>
</ul>
安全注意事项
- 使用
htmlspecialchars()防止 XSS 攻击 - 使用预处理语句防止 SQL 注入
- 对用户输入进行验证和过滤
- 在生产环境中使用 HTTPS
扩展功能
- 添加分页功能
- 实现管理员回复功能
- 添加验证码防止垃圾留言
- 实现留言审核机制






