针对“PHP实现基本留言板功能原理与步骤详解”,我来详细讲解一下。
首先,基本留言板功能需要实现以下几项功能:
- 显示留言列表
- 提交留言
- 删除留言
以下是具体步骤:
- 建立数据库
在MySQL中,可以用以下代码新建一个留言板数据库及数据表:
CREATE DATABASE my_guestbook;
USE my_guestbook;
CREATE TABLE messages (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(30) NOT NULL,
message TEXT NOT NULL,
time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
在上述语句中,创建了一个名为my_guestbook
的数据库,包括一个名为messages
的数据表和四个字段,分别是id、name、message、time,表示留言编号、留言人、留言信息、留言时间。
- 显示留言列表
为了显示留言列表,我们需要使用简单的PHP脚本来检索数据库中的所有留言并将其输出到一个HTML表格中:
<?php
// 连接数据库
$conn = mysqli_connect('localhost', 'username', 'password', 'my_guestbook');
// 检查数据库连接是否成功
if (!$conn) {
die('Connection failed: ' . mysqli_connect_error());
}
// 获取留言列表
$sql = "SELECT * FROM messages";
$result = mysqli_query($conn, $sql);
// 输出留言列表
if (mysqli_num_rows($result) > 0) {
echo "<table><tr><th>ID</th><th>Name</th><th>Message</th></tr>";
while($row = mysqli_fetch_assoc($result)) {
echo "<tr><td>".$row["id"]."</td><td>".$row["name"]."</td><td>".$row["message"]."</td></tr>";
}
echo "</table>";
} else {
echo "No messages found.";
}
// 关闭数据库连接
mysqli_close($conn);
?>
上述PHP脚本会连接到之前创建的数据库中,查询留言列表并将其输出到一个HTML表格中。表格的列包括id、name和message。
- 提交留言
为了提交留言,我们需要创建一个包含表单的HTML页面,并在提交表单时检查并将新留言插入到数据库中:
<!DOCTYPE html>
<html>
<head>
<title>Guestbook</title>
</head>
<body>
<h1>Guestbook</h1>
<form action="submit.php" method="post">
<label for="name">Name:</label>
<input type="text" id="name" name="name"><br><br>
<label for="message">Message:</label>
<textarea id="message" name="message" rows="10" cols="30"></textarea><br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
当用户填写此表单并提交时,可以使用以下代码检查并将新留言插入到数据库中:
<?php
// 连接数据库
$conn = mysqli_connect('localhost', 'username', 'password', 'my_guestbook');
// 检查数据库连接是否成功
if (!$conn) {
die('Connection failed: ' . mysqli_connect_error());
}
// 获取用户提交的留言信息
$name = mysqli_real_escape_string($conn, $_POST['name']);
$message = mysqli_real_escape_string($conn, $_POST['message']);
// 插入新留言到数据库
$sql = "INSERT INTO messages (name, message) VALUES ('$name', '$message')";
if (!mysqli_query($conn, $sql)) {
echo "Error: " . mysqli_error($conn);
}
// 重定向到显示留言列表的页面
header('Location: list.php');
// 关闭数据库连接
mysqli_close($conn);
?>
上述代码会在用户提交表单后将name
和message
字段插入到messages
表中,然后将用户重定向到之前创建的显示留言列表的页面。
- 删除留言
为了删除留言,我们需要在显示留言列表时为每个留言添加一个删除链接,以便用户可以单击它以删除相应的留言。以下是更新后的PHP脚本:
<?php
// 连接数据库
$conn = mysqli_connect('localhost', 'username', 'password', 'my_guestbook');
// 检查数据库连接是否成功
if (!$conn) {
die('Connection failed: ' . mysqli_connect_error());
}
// 判断是否删除留言
if (isset($_GET['delete'])) {
$delete_id = mysqli_real_escape_string($conn, $_GET['delete']);
$sql = "DELETE FROM messages WHERE id=$delete_id";
mysqli_query($conn, $sql);
}
// 获取留言列表
$sql = "SELECT * FROM messages";
$result = mysqli_query($conn, $sql);
// 输出留言列表
if (mysqli_num_rows($result) > 0) {
echo "<table><tr><th>ID</th><th>Name</th><th>Message</th><th>Action</th></tr>";
while($row = mysqli_fetch_assoc($result)) {
echo "<tr><td>".$row["id"]."</td><td>".$row["name"]."</td><td>".$row["message"]."</td><td><a href=\"list.php?delete=".$row['id']."\">Delete</a></td></tr>";
}
echo "</table>";
} else {
echo "No messages found.";
}
// 关闭数据库连接
mysqli_close($conn);
?>
上述代码会为每个留言添加一个“Delete”链接,当用户单击“Delete”链接时,会将相应的留言从数据库中删除。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP实现基本留言板功能原理与步骤详解 - Python技术站