编写 PHP 页面实现一个留言板,包括留言者的 id(可以是网名),时间, 主题,正文和附件;另外设计一个页面对留言进行列表,以表格的形式展示留言 的简介;当点击一条信息后,显示该留言的详细信息
时间: 2023-11-15 14:05:02 浏览: 39
以下是一个简单的 PHP 留言板实现,包括留言列表和详细信息页面:
留言板页面(index.php):
```php
<!DOCTYPE html>
<html>
<head>
<title>留言板</title>
</head>
<body>
<h1>留言板</h1>
<form action="submit.php" method="post" enctype="multipart/form-data">
<label for="user_id">留言者 ID:</label>
<input type="text" name="user_id" id="user_id"><br>
<label for="subject">主题:</label>
<input type="text" name="subject" id="subject"><br>
<label for="message">正文:</label>
<textarea name="message" id="message"></textarea><br>
<label for="attachment">附件:</label>
<input type="file" name="attachment" id="attachment"><br>
<input type="submit" value="提交">
</form>
<hr>
<h2>留言列表</h2>
<table>
<tr>
<th>ID</th>
<th>时间</th>
<th>主题</th>
</tr>
<?php
// 从留言文件中读取留言数据
$messages = file_get_contents('messages.txt');
$messages = explode("\n", $messages);
// 遍历留言数据,输出留言列表
foreach ($messages as $message) {
if (!empty($message)) {
$message = json_decode($message, true);
echo '<tr>';
echo '<td>' . $message['user_id'] . '</td>';
echo '<td>' . $message['time'] . '</td>';
echo '<td><a href="view.php?id=' . $message['id'] . '">' . $message['subject'] . '</a></td>';
echo '</tr>';
}
}
?>
</table>
</body>
</html>
```
提交留言页面(submit.php):
```php
<?php
// 获取表单数据
$user_id = $_POST['user_id'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$attachment = $_FILES['attachment'];
// 生成留言 ID
$id = uniqid();
// 保存附件(如果有)
$attachment_file = '';
if (!empty($attachment)) {
$attachment_file = 'attachments/' . $id . '_' . $attachment['name'];
move_uploaded_file($attachment['tmp_name'], $attachment_file);
}
// 保存留言数据到文件
$message_data = array(
'id' => $id,
'user_id' => $user_id,
'time' => date('Y-m-d H:i:s'),
'subject' => $subject,
'message' => $message,
'attachment' => $attachment_file
);
file_put_contents('messages.txt', json_encode($message_data) . "\n", FILE_APPEND);
// 跳转到留言列表页面
header('Location: index.php');
exit;
?>
```
查看留言详情页面(view.php):
```php
<!DOCTYPE html>
<html>
<head>
<title>留言详情</title>
</head>
<body>
<h1>留言详情</h1>
<?php
// 获取要查看的留言 ID
$id = $_GET['id'];
// 从留言文件中查找指定 ID 的留言数据
$messages = file_get_contents('messages.txt');
$messages = explode("\n", $messages);
foreach ($messages as $message) {
if (!empty($message)) {
$message = json_decode($message, true);
if ($message['id'] == $id) {
// 输出留言详情信息
echo '<p>ID: ' . $message['id'] . '</p>';
echo '<p>留言者 ID: ' . $message['user_id'] . '</p>';
echo '<p>时间: ' . $message['time'] . '</p>';
echo '<p>主题: ' . $message['subject'] . '</p>';
echo '<p>正文: ' . $message['message'] . '</p>';
if (!empty($message['attachment'])) {
echo '<p>附件: <a href="' . $message['attachment'] . '">' . basename($message['attachment']) . '</a></p>';
}
break;
}
}
}
?>
<p><a href="index.php">返回留言列表</a></p>
</body>
</html>
```
注意,以上代码仅为示例,没有进行输入过滤和验证,不适用于实际应用。在实际应用中,需要对用户输入进行过滤和验证,以确保应用的安全性和健壮性。