(1)制作最简单的留言板首页,其中包括一个表单,提交后能添如貿言即可。表单下面显示留言。输入多行留言,实现观察显示留言时能实现换行功能。 (2)利用Recordset对象的分页属性实现留言板分页。
时间: 2024-02-25 18:54:57 浏览: 84
感谢您的提问!针对您的问题,以下是我的回答:
(1) 制作最简单的留言板首页,可以使用 HTML 和 PHP 实现。HTML 部分包括一个表单和一个留言展示区域,PHP 部分则处理表单提交和留言展示。以下是一个简单的示例代码:
HTML 部分:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>留言板</title>
</head>
<body>
<h1>留言板</h1>
<form action="submit.php" method="post">
<label for="name">姓名:</label>
<input type="text" id="name" name="name"><br>
<label for="content">留言:</label>
<textarea id="content" name="content"></textarea><br>
<input type="submit" value="提交">
</form>
<h2>留言列表</h2>
<?php include 'show.php'; ?>
</body>
</html>
```
PHP 部分:
submit.php:
```php
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = $_POST['name'];
$content = $_POST['content'];
if (!empty($name) && !empty($content)) {
$file = fopen('messages.txt', 'a');
fwrite($file, "{$name}: {$content}\n");
fclose($file);
}
}
header('Location: index.php');
?>
```
show.php:
```php
<?php
$file = fopen('messages.txt', 'r');
if ($file) {
while (($line = fgets($file)) !== false) {
echo nl2br(htmlspecialchars($line));
}
fclose($file);
}
?>
```
这段代码将表单提交到 submit.php,submit.php 将留言写入到 messages.txt 文件中,然后重定向回 index.php。show.php 读取 messages.txt 文件并将留言逐行展示出来,同时使用 nl2br 和 htmlspecialchars 函数实现换行和转义。
(2) 利用 Recordset 对象的分页属性实现留言板分页,需要使用数据库来存储留言,并使用 SQL 语句和 Recordset 对象来实现分页。以下是一个简单的示例代码:
HTML 部分:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>留言板</title>
</head>
<body>
<h1>留言板</h1>
<form action="submit.php" method="post">
<label for="name">姓名:</label>
<input type="text" id="name" name="name"><br>
<label for="content">留言:</label>
<textarea id="content" name="content"></textarea><br>
<input type="submit" value="提交">
</form>
<h2>留言列表</h2>
<?php include 'show.php'; ?>
</body>
</html>
```
PHP 部分:
submit.php:
```php
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = $_POST['name'];
$content = $_POST['content'];
if (!empty($name) && !empty($content)) {
$conn = new mysqli('localhost', 'username', 'password', 'database');
$stmt = $conn->prepare('INSERT INTO messages (name, content) VALUES (?, ?)');
$stmt->bind_param('ss', $name, $content);
$stmt->execute();
}
}
header('Location: index.php');
?>
```
show.php:
```php
<?php
$conn = new mysqli('localhost', 'username', 'password', 'database');
if (isset($_GET['page'])) {
$page = $_GET['page'];
} else {
$page = 1;
}
$limit = 10;
$offset = ($page - 1) * $limit;
$stmt = $conn->prepare('SELECT * FROM messages ORDER BY id DESC LIMIT ?, ?');
$stmt->bind_param('ii', $offset, $limit);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
echo nl2br(htmlspecialchars("{$row['name']}: {$row['content']}\n"));
}
$total = $conn->query('SELECT COUNT(*) FROM messages')->fetch_row()[0];
$pages = ceil($total / $limit);
if ($pages > 1) {
echo '<p>';
for ($i = 1; $i <= $pages; $i++) {
if ($i == $page) {
echo "<strong>{$i}</strong> ";
} else {
echo "<a href=\"index.php?page={$i}\">{$i}</a> ";
}
}
echo '</p>';
}
?>
```
这段代码将留言存储到数据库中,然后使用 SQL 语句和 Recordset 对象从数据库中读取留言并分页展示出来,同时使用 ceil 函数计算总页数,并添加分页链接。需要注意的是,这里使用了 mysqli 扩展和预处理语句,以防止 SQL 注入攻击。
阅读全文