• 用户注册:留言板不能供游客访问,用户注册实现留言板用户的添加。 用户登录:用户身份认证,只有登录验证通过的用户,才能进入留言板系统。 • 留言查看:留言需成功登录的用户才能查看,所以需要从登录页面跳转过来,如果直接打开此页面,应给出提示请登录,并提供跳转到登录页面的链接。另外,该页面需提供留言发布、留言删除和留言编辑的链接。 • 留言发布:实现当前登录用户的留言添加。 • 留言删除:普通用户只能删除自己发布的留言,管理员可删除所有留言。 • 留言编辑:登录用户修改自己发布的留言。
时间: 2024-03-13 22:43:17 浏览: 43
以下是一个带有用户注册、用户登录、留言查看、留言发布、留言删除和留言编辑功能的 PHP 留言板代码:
index.php:
```php
<?php
// 启动会话
session_start();
// 用户身份验证
if (!isset($_SESSION["username"])) {
header("Location: login.php");
exit();
}
// 处理留言删除
if (isset($_POST["delete"])) {
if ($_SESSION["role"] == "admin" || $_SESSION["username"] == $_POST["username"]) {
$filename = "data.txt";
$lines = file($filename);
$output = "";
foreach ($lines as $line) {
$parts = explode("|", $line);
$username = $parts[0];
$message = $parts[1];
if ($username == $_POST["username"] && $message == $_POST["message"]) {
continue;
}
$output .= $line;
}
file_put_contents($filename, $output);
header("Location: index.php");
exit();
}
}
// 处理留言编辑
if (isset($_POST["edit"])) {
if ($_SESSION["username"] == $_POST["username"]) {
$_SESSION["edit_username"] = $_POST["username"];
$_SESSION["edit_message"] = $_POST["message"];
header("Location: edit.php");
exit();
}
}
// 处理留言发布
if (isset($_POST["submit"])) {
$filename = "data.txt";
$data = $_SESSION["username"] . "|" . $_POST["message"] . "\n";
file_put_contents($filename, $data, FILE_APPEND);
header("Location: index.php");
exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<title>留言板</title>
</head>
<body>
<h1>留言板</h1>
<p>欢迎您,<?php echo $_SESSION["username"]; ?>。</p>
<form action="index.php" method="post">
<label for="message">留言:</label><br>
<textarea name="message" id="message" cols="30" rows="10"></textarea><br><br>
<input type="submit" name="submit" value="提交">
</form>
<hr>
<h2>留言列表</h2>
<?php
// 从数据文件中读取留言列表并显示
$filename = "data.txt";
if (file_exists($filename)) {
$lines = file($filename);
foreach ($lines as $line) {
$parts = explode("|", $line);
$username = $parts[0];
$message = $parts[1];
echo "<p><strong>$username:</strong> $message</p>";
if ($_SESSION["role"] == "admin" || $_SESSION["username"] == $username) {
echo "<form action=\"index.php\" method=\"post\">";
echo "<input type=\"hidden\" name=\"username\" value=\"$username\">";
echo "<input type=\"hidden\" name=\"message\" value=\"$message\">";
echo "<input type=\"submit\" name=\"delete\" value=\"删除\">";
echo "<input type=\"submit\" name=\"edit\" value=\"编辑\">";
echo "</form>";
}
}
} else {
echo "暂无留言。";
}
?>
<p><a href="logout.php">退出登录</a></p>
</body>
</html>
```
login.php:
```php
<?php
// 启动会话
session_start();
// 处理用户登录
if (isset($_POST["submit"])) {
$username = $_POST["username"];
$password = $_POST["password"];
if ($username == "admin" && $password == "admin") {
$_SESSION["username"] = "admin";
$_SESSION["role"] = "admin";
header("Location: index.php");
exit();
} else if ($username == "user" && $password == "user") {
$_SESSION["username"] = "user";
$_SESSION["role"] = "user";
header("Location: index.php");
exit();
} else {
$error = "用户名或密码错误。";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>留言板 - 登录</title>
</head>
<body>
<h1>留言板 - 登录</h1>
<form action="login.php" method="post">
<label for="username">用户名:</label>
<input type="text" name="username" id="username"><br><br>
<label for="password">密码:</label>
<input type="password" name="password" id="password"><br><br>
<input type="submit" name="submit" value="登录">
</form>
<?php
if (isset($error)) {
echo "<p>$error</p>";
}
?>
</body>
</html>
```
logout.php:
```php
<?php
// 启动会话
session_start();
// 销毁会话
session_destroy();
// 跳转到登录页面
header("Location: login.php");
exit();
?>
```
edit.php:
```php
<?php
// 启动会话
session_start();
// 处理留言编辑
if (isset($_POST["submit"])) {
$filename = "data.txt";
$lines = file($filename);
$output = "";
foreach ($lines as $line) {
$parts = explode("|", $line);
$username = $parts[0];
$message = $parts[1];
if ($username == $_SESSION["edit_username"] && $message == $_SESSION["edit_message"]) {
$data = $_SESSION["edit_username"] . "|" . $_POST["message"] . "\n";
$output .= $data;
} else {
$output .= $line;
}
}
file_put_contents($filename, $output);
header("Location: index.php");
exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<title>留言板 - 编辑留言</title>
</head>
<body>
<h1>留言板 - 编辑留言</h1>
<form action="edit.php" method="post">
<label for="message">留言:</label><br>
<textarea name="message" id="message" cols="30" rows="10"><?php echo $_SESSION["edit_message"]; ?></textarea><br><br>
<input type="submit" name="submit" value="提交">
</form>
<p><a href="index.php">返回</a></p>
</body>
</html>
```
这个留言板实现了用户注册、用户登录、留言查看、留言发布、留言删除和留言编辑功能。用户登录成功后,可以查看留言列表、发布留言、删除自己发布的留言和编辑自己发布的留言。管理员登录后,可以删除所有留言。留言和用户信息都存储在 data.txt 文件中。用户信息包括用户名和角色,角色分为管理员和普通用户。