php实现添加留言
实现留言功能的基本步骤
创建一个简单的PHP留言系统需要处理表单提交、数据存储和显示留言。以下是关键实现步骤:
数据库准备
创建用于存储留言的数据库表,基本字段可包括:
id:自增主键name:留言者姓名email:联系邮箱(可选)content:留言内容created_at:留言时间
CREATE TABLE messages (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100),
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
表单页面设计
创建HTML表单用于提交留言:

<form action="submit_message.php" method="post">
<input type="text" name="name" placeholder="您的姓名" required>
<input type="email" name="email" placeholder="邮箱(可选)">
<textarea name="content" placeholder="留言内容" required></textarea>
<button type="submit">提交留言</button>
</form>
处理表单提交
创建submit_message.php处理表单数据并存入数据库:
<?php
// 连接数据库
$db = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');
// 获取表单数据
$name = $_POST['name'];
$email = $_POST['email'] ?? null;
$content = $_POST['content'];
// 防止SQL注入
$stmt = $db->prepare("INSERT INTO messages (name, email, content) VALUES (?, ?, ?)");
$stmt->execute([$name, $email, $content]);
// 重定向回留言页面
header('Location: messages.php');
exit;
?>
显示留言列表
创建messages.php显示所有留言:

<?php
$db = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');
$messages = $db->query("SELECT * FROM messages ORDER BY created_at DESC")->fetchAll();
foreach ($messages as $message) {
echo "<div class='message'>";
echo "<h3>{$message['name']}</h3>";
if ($message['email']) {
echo "<p>联系方式: {$message['email']}</p>";
}
echo "<p>{$message['content']}</p>";
echo "<small>{$message['created_at']}</small>";
echo "</div>";
}
?>
安全增强措施
增加基础安全防护:
// 过滤输入
function sanitizeInput($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
// 使用预处理语句防止SQL注入
$stmt = $db->prepare("INSERT INTO messages (name, email, content) VALUES (:name, :email, :content)");
$stmt->bindParam(':name', $sanitizedName);
$stmt->bindParam(':email', $sanitizedEmail);
$stmt->bindParam(':content', $sanitizedContent);
$stmt->execute();
验证码集成
防止垃圾留言可添加验证码:
// 在表单中添加
<img src="captcha.php" />
<input type="text" name="captcha" placeholder="输入验证码">
// captcha.php生成验证码
session_start();
$code = rand(1000, 9999);
$_SESSION['captcha'] = $code;
// 生成图片代码...
文件结构建议
推荐的项目文件结构:
index.php:留言表单submit_message.php:处理提交messages.php:显示留言includes/db.php:数据库连接includes/functions.php:常用函数
这个实现提供了PHP留言系统的基础功能,可根据需求扩展分页、回复功能或管理后台等高级特性。






