php实现留言
PHP 实现留言功能
数据库设计
创建数据库表存储留言信息,字段通常包括留言ID、用户名、留言内容、留言时间等。以下是一个简单的MySQL表结构示例:
CREATE TABLE messages (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
表单提交
创建HTML表单用于用户提交留言:

<form action="submit_message.php" method="post">
<input type="text" name="username" placeholder="用户名" required>
<textarea name="content" placeholder="留言内容" required></textarea>
<button type="submit">提交留言</button>
</form>
处理提交
创建PHP文件处理表单提交并将数据存入数据库:
<?php
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database_name');
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 获取表单数据
$username = $_POST['username'];
$content = $_POST['content'];
// 防止SQL注入
$username = $conn->real_escape_string($username);
$content = $conn->real_escape_string($content);
// 插入数据
$sql = "INSERT INTO messages (username, content) VALUES ('$username', '$content')";
if ($conn->query($sql) === TRUE) {
echo "留言提交成功";
} else {
echo "错误: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
显示留言
创建PHP页面从数据库获取并显示留言:

<?php
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database_name');
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 查询留言
$sql = "SELECT * FROM messages ORDER BY created_at DESC";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<div class='message'>";
echo "<h3>" . htmlspecialchars($row['username']) . "</h3>";
echo "<p>" . htmlspecialchars($row['content']) . "</p>";
echo "<small>" . $row['created_at'] . "</small>";
echo "</div>";
}
} else {
echo "暂无留言";
}
$conn->close();
?>
安全增强
为增强安全性,建议采取以下措施:
- 使用预处理语句替代直接SQL查询
- 对输出内容使用htmlspecialchars()函数防止XSS攻击
- 实现CSRF防护机制
- 对用户输入进行验证和过滤
完整示例结构
一个完整的留言系统通常包含以下文件:
- index.php:显示留言列表和提交表单
- submit_message.php:处理表单提交
- config.php:数据库连接配置
- style.css:页面样式
这个实现提供了基本的留言功能,可以根据需求进一步扩展,如添加回复功能、用户登录系统或管理员审核功能等。






