php制作留言板代码
php<!DOCTYPE html>
<html>
<head>
<title>留言板</title>
</head>
<body>
<h2>留言板</h2>
<?php
// 数据库连接
$servername = "localhost";
$username = "username"; // 数据库用户名
$password = "password"; // 数据库密码
$dbname = "myDB"; // 数据库名称
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 提交留言
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$message = $_POST['message'];
$sql = "INSERT INTO messages (message) VALUES ('$message')";
if ($conn->query($sql) === TRUE) {
echo "留言已提交成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
// 显示留言
$sql = "SELECT * FROM messages";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<p>" . $row["message"]. "</p>";
}
} else {
echo "暂无留言";
}
$conn->close();
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<label for="message">留言:</label><br>
<textarea id="message" name="message" rows="4" cols="50"></textarea><br>
<input type="submit" value="提交">
</form>
</body>
</html>
在这个示例中,我们假设数据库中有一个名为 messages
的表,其中包含一个名为 message
的字段,用于存储用户的留言内容。确保替换示例中的数据库连接信息为你自己的数据库连接信息,并根据你的数据库结构调整 SQL 查询和插入语句。
php<!DOCTYPE html>
<html>
<head>
<title>留言板</title>
</head>
<body>
<h2>留言板</h2>
<?php
// 数据库连接
$servername = "localhost";
$username = "username"; // 数据库用户名
$password = "password"; // 数据库密码
$dbname = "myDB"; // 数据库名称
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 提交留言
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$message = $_POST['message'];
// 检查留言是否为空
if (!empty($message)) {
$message = $conn->real_escape_string($message); // 防止 SQL 注入攻击
$timestamp = date('Y-m-d H:i:s'); // 记录时间戳
$sql = "INSERT INTO messages (message, timestamp) VALUES ('$message', '$timestamp')";
if ($conn->query($sql) === TRUE) {
echo "留言已提交成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
} else {
echo "留言不能为空";
}
}
// 显示留言
$sql = "SELECT * FROM messages ORDER BY timestamp DESC"; // 按时间戳倒序显示
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<p>" . $row["timestamp"]. " - " . $row["message"]. "</p>";
}
} else {
echo "暂无留言";
}
$conn->close();
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<label for="message">留言:</label><br>
<textarea id="message" name="message" rows="4" cols="50"></textarea><br>
<input type="submit" value="提交">
</form>
</body>
</html>
在这个版本中,我们添加了使用 real_escape_string()
函数来防止 SQL 注入攻击。检查用户提交的留言是否为空,并给出相应的错误提示。添加了时间戳字段,并在显示留言时按照时间戳倒序排列留言。显示了每条留言的时间戳。