下面是关于“PHP实现留言板功能(代码详解)”的完整攻略:
简介
留言板功能是网站常用的功能之一,它能够让用户在网站上发布留言并进行展示,是网站互动的一个重要部分。而 PHP 作为一种常见的后端语言,能够方便地实现留言板功能。
整体思路
实现留言板的一个基本思路是,将用户提交的留言保存在服务器端的本地数据库中,然后在网页上展示出来。
具体实现的步骤如下:
-
编写前端页面,用于展示留言和提交留言的表单。
-
编写 PHP 页面,用于将用户提交的留言存储到数据库中。
-
编写 PHP 页面,用于从数据库中取出留言并展示在前端页面上。
代码详解
下面将分别介绍以上三个步骤的代码实现。
前端页面
前端页面 HTML 代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>留言板</title>
</head>
<body>
<h1>留言板</h1>
<form method="post" action="save-message.php">
<label>姓名:</label>
<input type="text" name="name"><br>
<label>留言:</label>
<textarea name="message"></textarea><br>
<input type="submit" value="提交留言">
</form>
<hr>
<h2>留言列表</h2>
<ul>
<?php include 'show-messages.php'; ?>
</ul>
</body>
</html>
该页面包含一个表单,用于提交用户的姓名和留言内容,并对应 save-message.php
这个页面来处理。表单下面展示留言列表,对应 show-messages.php
这个页面来展示留言。
存储留言
save-message.php
代码如下:
<?php
// 连接数据库
$link = mysqli_connect("localhost", "root", "password");
if (!$link) {
die("连接数据库失败:" . mysqli_error());
}
// 选择数据库
mysqli_select_db($link, "test");
// 设置字符集
mysqli_query($link, "set names utf8");
// 获取表单数据
$name = $_POST["name"];
$message = $_POST["message"];
if ($name && $message) {
// 添加留言
$sql = "insert into messages (name, message) values ('$name', '$message')";
if (mysqli_query($link, $sql)) {
echo "留言成功";
} else {
echo "留言失败:" . mysqli_error();
}
} else {
echo "请填写姓名和留言内容";
}
// 关闭连接
mysqli_close($link);
?>
该页面会接收前端表单提交的数据,并将数据插入到数据库中。其中,mysqli_connect()
函数用于连接数据库,mysqli_select_db()
函数用于选择表,mysqli_query()
函数用于执行数据库操作,mysqli_close()
函数用于关闭连接。
展示留言
show-messages.php
代码如下:
<?php
// 连接数据库
$link = mysqli_connect("localhost", "root", "password");
if (!$link) {
die("连接数据库失败:" . mysqli_error());
}
// 选择数据库
mysqli_select_db($link, "test");
// 设置字符集
mysqli_query($link, "set names utf8");
// 查询留言并展示
$sql = "select * from messages order by id desc";
$result = mysqli_query($link, $sql);
while ($row = mysqli_fetch_assoc($result)) {
echo "<li>" . $row["name"] . ":" . $row["message"] . "</li>";
}
// 关闭连接
mysqli_close($link);
?>
该页面会从数据库中获取留言数据,并展示在页面上。其中,mysqli_fetch_assoc()
函数用于获取查询结果中的一行数据,while
循环用于迭代所有查询结果。
示例说明
以下是两个示例,方便读者更深入地了解留言板功能的实现。
示例 1:添加表单验证
在前端页面表单提交之前,可以通过 JavaScript 添加一些表单验证逻辑,保证用户提交了有效的数据。示例代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>留言板</title>
<script>
function validateForm() {
var name = document.forms["myform"]["name"].value;
var message = document.forms["myform"]["message"].value;
if (name == "") {
alert("请填写姓名");
return false;
}
if (message == "") {
alert("请填写留言");
return false;
}
}
</script>
</head>
<body>
<h1>留言板</h1>
<form name="myform" method="post" action="save-message.php" onsubmit="return validateForm()">
<label>姓名:</label>
<input type="text" name="name"><br>
<label>留言:</label>
<textarea name="message"></textarea><br>
<input type="submit" value="提交留言">
</form>
<hr>
<h2>留言列表</h2>
<ul>
<?php include 'show-messages.php'; ?>
</ul>
</body>
</html>
示例 2:添加富文本编辑功能
在留言板的留言提交表单中,可以添加富文本编辑功能,让用户能够更方便地编辑留言。应用富文本编辑器需要引入相应的 JS 库,在示例中我们使用了 tinymce
库。示例代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>留言板</title>
<script src="//cdn.tinymce.com/4/tinymce.min.js"></script>
<script>
tinymce.init({
selector: 'textarea',
toolbar_button_size: 'small',
plugins: 'advlist autolink lists link image charmap print preview hr anchor pagebreak',
menu: {
format: {title: 'Format', items: 'bold italic underline strikethrough | subscript superscript | formats'},
tools: {title: 'Tools', items: 'spellchecker code'}
}
});
</script>
</head>
<body>
<h1>留言板</h1>
<form method="post" action="save-message.php">
<label>姓名:</label>
<input type="text" name="name"><br>
<label>留言:</label>
<textarea name="message"></textarea><br>
<input type="submit" value="提交留言">
</form>
<hr>
<h2>留言列表</h2>
<ul>
<?php include 'show-messages.php'; ?>
</ul>
</body>
</html>
在以上示例中,我们引入了 tinymce
库,并对对应的 textarea
元素进行初始化。用户在留言提交表单中填写留言时,可以使用 tinymce
库提供的编辑功能,以更方便地完成留言的编辑。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php实现留言板功能(代码详解) - Python技术站