超多的题库,支持文字、图片,语音搜题,包含国家开放大学、广东开放大学、云南开放大学、北京开放大学、上海开放大学、江苏开放大学、超星、青书、奥鹏等等多个平台题库,考试作业必备神器。

2023年秋季广东开放大学PHP动态网站设计形成性考核平时作业参考答案
一、题目要求
根据给定的需求,设计一个PHP动态网站。网站需要包含以下功能:
1. 用户注册和登录功能:用户可以通过注册账号并登录到网站。
2. 文章发布功能:登录用户可以发布文章,并可以对已发布的文章进行编辑和删除。
3. 文章列表展示功能:网站首页需要展示最新发布的文章列表。
4. 文章详情展示功能:用户可以点击文章标题,查看文章的详细内容。
5. 评论功能:用户可以对文章进行评论,并可以查看其他用户的评论。
二、解题思路
1. 数据库设计:创建一个名为"blog"的数据库,包含两个表格:"users"和"articles"。
o "users"表格包含以下字段:id(主键,自增)、username、password。
o "articles"表格包含以下字段:id(主键,自增)、title、content、author、create_time。
2. 用户注册和登录功能:
o 注册功能:用户在注册页面输入用户名和密码,将用户名和密码插入到"users"表格中。
o 登录功能:用户在登录页面输入用户名和密码,查询"users"表格,如果用户名和密码匹配,则登录成功。
3. 文章发布功能:
o 登录用户在发布页面输入文章标题和内容,将文章标题、内容、作者和创建时间插入到"articles"表格中。
4. 文章列表展示功能:
o 查询"articles"表格,按照创建时间倒序排列,获取最新发布的文章列表。
5. 文章详情展示功能:
o 用户点击文章标题,根据文章id查询"articles"表格,获取文章的详细内容。
6. 评论功能:
o 用户在文章详情页面输入评论内容,将评论内容、评论用户和评论时间插入到"comments"表格中。
o 查询"comments"表格,根据文章id获取该文章的所有评论。
三、代码实现
7. 数据库连接和表格创建:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "blog";
// 创建数据库连接
$conn = new mysqli($servername, $username, $password);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 创建数据库
$sql = "CREATE DATABASE IF NOT EXISTS $dbname";
if ($conn->query($sql) === TRUE) {
echo "数据库创建成功";
} else {
echo "Error creating database: " . $conn->error;
}
// 选择数据库
$conn->select_db($dbname);
// 创建"users"表格
$sql = "CREATE TABLE IF NOT EXISTS users (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
password VARCHAR(30) NOT NULL
)";
if ($conn->query($sql) === TRUE) {
echo "users表格创建成功";
} else {
echo "Error creating table: " . $conn->error;
}
// 创建"articles"表格
$sql = "CREATE TABLE IF NOT EXISTS articles (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
content TEXT NOT NULL,
author VARCHAR(30) NOT NULL,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)";
if ($conn->query($sql) === TRUE) {
echo "articles表格创建成功";
} else {
echo "Error creating table: " . $conn->error;
}
$conn->close();
?>
%1. 用户注册和登录功能:
<?php
session_start();
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "blog";
// 创建数据库连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 注册功能
if (isset($_POST['register'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "INSERT INTO users (username, password) VALUES ('$username', '$password')";
if ($conn->query($sql) === TRUE) {
echo "注册成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
// 登录功能
if (isset($_POST['login'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$_SESSION['username'] = $username;
echo "登录成功";
} else {
echo "用户名或密码错误";
}
}
$conn->close();
?>
%1. 文章发布功能:
<?php
session_start();
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "blog";
// 创建数据库连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 文章发布功能
if (isset($_POST['publish'])) {
$title = $_POST['title'];
$content = $_POST['content'];
$author = $_SESSION['username'];
$sql = "INSERT INTO articles (title, content, author) VALUES ('$title', '$content', '$author')";
if ($conn->query($sql) === TRUE) {
echo "文章发布成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
$conn->close();
?>
%1. 文章列表展示功能:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "blog";
// 创建数据库连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 查询最新发布的文章列表
$sql = "SELECT * FROM articles ORDER BY create_time DESC";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "标题: " . $row["title"]. " - 作者: " . $row["author"]. " - 创建时间: " . $row["create_time"]. "<br>";
}
} else {
echo "暂无文章";
}
$conn->close();
?>
%1. 文章详情展示功能:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "blog";
// 创建数据库连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 获取文章id
$id = $_GET['id'];
// 根据文章id查询文章详情
$sql = "SELECT * FROM articles WHERE id='$id'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "标题: " . $row["title"]. "<br>";
echo "内容: " . $row["content"]. "<br>";
echo "作者: " . $row["author"]. "<br>";
echo "创建时间: " . $row["create_time"]. "<br>";
}
} else {
echo "文章不存在";
}
$conn->close();
?>
%1. 评论功能:
<?php
session_start();
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "blog";
// 创建数据库连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 获取文章id
$id = $_GET['id'];
// 评论功能
if (isset($_POST['comment'])) {
$content = $_POST['content'];
$user = $_SESSION['username'];
$sql = "INSERT INTO comments (content, user, article_id) VALUES ('$content', '$user', '$id')";
if ($conn->query($sql) === TRUE) {
echo "评论成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
// 查询文章的评论列表
$sql = "SELECT * FROM comments WHERE article_id='$id'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "评论内容: " . $row["content"]. " - 评论用户: " . $row["user"]. " - 评论时间: " . $row["create_time"]. "<br>";
}
} else {
echo "暂无评论";
}
$conn->close();
?>
四、总结
通过以上代码实现,我们可以完成一个简单的PHP动态网站。用户可以注册和登录,发布文章并对已发布的文章进行编辑和删除。网站首页展示最新发布的文章列表,用户可以点击文章标题查看文章的详细内容,并可以对文章进行评论。这个网站可以作为广东开放大学2023年秋季PHP动态网站设计形成性考核平时作业的参考答案。
微信扫码添加好友
如二维码无法识别,可拨打 13662661040 咨询。