1、编写一个PHP页面,使用Form表单上传一个留言, 包括作者ID,时间,主题,正文,图片。一个留言目前允许上传一个图片,一个留言生成一个文件。提示,文件的格式可以使用JSON,便于解析。 2、编写一个页面,对所有的留言进行表格形式的浏览(不显示正文和图片,如实验二的方式),可以考虑分页的方式(可选,因为要用到session) 3、编写一个php页面用于显示留言的详细内容,当点击列表中的某个列表时,用该页面显示详细内容。 注意三个页面的导航关系,可以设计一个顶层的导航菜单,或者是其他方式
时间: 2023-12-15 19:06:19 浏览: 141
好的,我可以为你提供一些参考代码。但是需要说明的是,这些代码并不一定完全符合你的要求,需要你根据实际情况进行修改和完善。
1. 编写上传留言的页面:
```php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>上传留言</title>
</head>
<body>
<h1>上传留言</h1>
<form action="submit.php" method="post" enctype="multipart/form-data">
<p>作者ID:<input type="text" name="author_id"></p>
<p>时间:<input type="text" name="time"></p>
<p>主题:<input type="text" name="subject"></p>
<p>正文:<textarea name="content"></textarea></p>
<p>图片:<input type="file" name="image"></p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
```
2. 处理留言上传的请求:
```php
<?php
// 获取表单数据
$author_id = $_POST['author_id'];
$time = $_POST['time'];
$subject = $_POST['subject'];
$content = $_POST['content'];
// 处理图片上传
if ($_FILES['image']['error'] == UPLOAD_ERR_OK) {
$image_name = $_FILES['image']['name'];
move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/' . $image_name);
} else {
$image_name = '';
}
// 生成留言文件
$data = array(
'author_id' => $author_id,
'time' => $time,
'subject' => $subject,
'content' => $content,
'image' => $image_name
);
$json_data = json_encode($data);
$file_name = time() . '.json';
file_put_contents('messages/' . $file_name, $json_data);
// 跳转到留言列表页面
header('Location: list.php');
exit;
```
3. 显示留言列表的页面:
```php
<?php
// 获取留言文件列表
$file_list = glob('messages/*.json');
$total_count = count($file_list);
// 处理分页
$page_size = 10;
$page_count = ceil($total_count / $page_size);
$page_index = isset($_GET['page']) ? intval($_GET['page']) : 1;
$start_index = ($page_index - 1) * $page_size;
$end_index = min($start_index + $page_size, $total_count);
// 获取当前页的留言数据
$message_list = array();
for ($i = $start_index; $i < $end_index; $i++) {
$file_path = $file_list[$i];
$json_data = file_get_contents($file_path);
$data = json_decode($json_data, true);
$data['id'] = basename($file_path, '.json');
$message_list[] = $data;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>留言列表</title>
</head>
<body>
<h1>留言列表</h1>
<table>
<tr>
<th>ID</th>
<th>作者ID</th>
<th>时间</th>
<th>主题</th>
</tr>
<?php foreach ($message_list as $message): ?>
<tr>
<td><a href="view.php?id=<?php echo $message['id']; ?>"><?php echo $message['id']; ?></a></td>
<td><?php echo $message['author_id']; ?></td>
<td><?php echo $message['time']; ?></td>
<td><?php echo $message['subject']; ?></td>
</tr>
<?php endforeach; ?>
</table>
<?php if ($page_count > 1): ?>
<p>
<?php if ($page_index > 1): ?>
<a href="?page=<?php echo $page_index - 1; ?>">上一页</a>
<?php endif; ?>
<?php for ($i = 1; $i <= $page_count; $i++): ?>
<?php if ($i == $page_index): ?>
<span><?php echo $i; ?></span>
<?php else: ?>
<a href="?page=<?php echo $i; ?>"><?php echo $i; ?></a>
<?php endif; ?>
<?php endfor; ?>
<?php if ($page_index < $page_count): ?>
<a href="?page=<?php echo $page_index + 1; ?>">下一页</a>
<?php endif; ?>
</p>
<?php endif; ?>
</body>
</html>
```
4. 显示单个留言的页面:
```php
<?php
// 获取留言ID
$id = $_GET['id'];
// 获取留言数据
$file_path = 'messages/' . $id . '.json';
$json_data = file_get_contents($file_path);
$data = json_decode($json_data, true);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>留言详情</title>
</head>
<body>
<h1>留言详情</h1>
<p>作者ID:<?php echo $data['author_id']; ?></p>
<p>时间:<?php echo $data['time']; ?></p>
<p>主题:<?php echo $data['subject']; ?></p>
<p>正文:<?php echo $data['content']; ?></p>
<?php if ($data['image']): ?>
<p>图片:<img src="uploads/<?php echo $data['image']; ?>"></p>
<?php endif; ?>
<p><a href="list.php">返回列表</a></p>
</body>
</html>
```
这些代码可以作为一个简单的留言板系统的雏形,你可以根据自己的需求进行修改和扩展。注意,这些代码并没有进行输入验证和安全性检查,请务必进行完善。
阅读全文