收藏关注不迷路!!
🌟文末获取源码+数据库🌟
感兴趣的可以先收藏起来,还有大家在毕设选题(免费咨询指导选题),项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
前言
在线小说阅读平台汇聚海量作品,满足读者多元需求,提供便捷阅读体验。智能推荐系统助力发现佳作,互动性强,促进读者交流。多种阅读模式,舒适体验。平台成文学传播新渠道,注入活力。系统利用PHP语言,结合目前流行的 B/S架构,数据库使用免费的高性能MySQL数据库作为后端数据库,系统选择Windows操作系统。实现用户、作者、小说分类、热门小说、我的书架、小说听书、系统管理、我的信息等功能。面向用户群体,分为管理员、作者和用户三个角色,针对不同的用户划分不同的管理权限。期望该系统能够成为汉服销售与租赁的主要系统。方便用户之间进行在线小说阅读的查询与管理,从而促进作者与用户之间的互动交流起到不少的促进作用。
详细视频演示
文章底部名片,联系我看更详细的演示视频
一、项目介绍
开发语言:PHP
数据库:MYSQL数据库
应用服务:apache服务器
使用框架:ThinkPHP+vue
开发工具:VScode/Dreamweaver/PhpStorm等均可
————————————————
二、功能介绍
在线小说阅读平台在设计与实现时,采取了模块性的设计理念,把相似的系统的功能整合到一个模组中,以增强内部的功能,减少各组件之间的联系,从而达到减少相互影响的目的。
系统主要功能是用户、作者、小说分类、热门小说、我的书架、小说听书、系统管理、我的信息等功能。系统总体功能结构图如图4-1所示。
图4-1 系统总体功能结构图
三、系统测试
测试是和系统开发同步进行的,因此在需求阶段测试人员就已经对需求阶段的各个指标进行了相对应的验证测试,在系统开发过程中进行单元测试,在系统开发完成后针对性能、功能性和可用性进行系统测试。限于篇幅所限,下面主要围绕功能测试用例和测试总结两个方面进行说明。
系统功能测试
测试用例描述 | 操作过程及数据 | 预期结果 | 测试结果 |
---|---|---|---|
以用户身份登录 | 按照系统要求填写用户登录名和密码信息点击“确定” | 系统跳转至用户可使用的前台首页 | 通过 |
以管理人员身份登录 | 按照系统要求填写管理人员登录名和密码信息点击“确定 | 系统跳转至管理人员可使用的后台首页 | 通过 |
以未注册身份登录 | 按照系统要求填写并未注册登录名和密码信息点击“确定” | 系统提示用户名或密码错误 | 通过 |
用户名为空 | 用户没有填写用户名 | 系统提示用户名未填写 | 通过 |
四、核心代码
部分代码:
<?php
session_start();
class YonghuController extends CommonController {
public function __construct()
{
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE");
header('Access-Control-Allow-Headers:Origin,Content-Type,Accept,token,X-Requested-With,device');
}
public $columData = [
'id','addtime'
,'zhanghao'
,'xingming'
,'mima'
,'shoujihao'
,'xingbie'
,'nianling'
,'touxiang'
,'sfsh'
,'shhf'
,'vip'
];
/**
* 登录接口
* POST
* */
public function login(){
$username = isset($_REQUEST['username'])?$_REQUEST['username']:"";
$password = isset($_REQUEST['password'])?$_REQUEST['password']:"";
$sql = "select * from `yonghu` where `zhanghao` = '".$username."' and `mima` = '".$password."'";
$result = table_sql($sql);
if ($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()) {
if ($row['sfsh'] != "是") {
exit(json_encode(['code' => -1,'msg'=>"账号已锁定,请联系管理员审核!"]));
}
$token_array = [
"iat" => time(), //签发时间
"exp" => time()+7200, //token 过期时间
'tablename'=> 'yonghu',//表名
'columData' => $this->columData,
'id' => $row['id'],
'isAdmin' => 0,
"success" => $row,//记录的uid的信息,如果有其它信息,可以再添加数组的键值对
'username' => $row['zhanghao'],
];
$tokens = base64_encode(json_encode($token_array));
$_SESSION[$tokens] = $row["id"];
$colum = "zhanghao";
$md5 = md5($row["id"]."+10086");
$_SESSION[$md5] = $row[$colum];
$data = ['code' => 0, 'token' => $tokens];
exit(json_encode($data));
}
} else {
exit(json_encode(['code'=>500,'msg'=>"账号或密码错误"]));
}
}
/**
* 退出
* post
*/
public function logout(){
$token = $this->token();
unset($token);
exit(json_encode(['code'=>0,'msg'=>'退出成功']));
}
/**
* 注册
* post
*/
public function register(){
$tmpData = strval(file_get_contents("php://input"));
$postData = json_decode($tmpData,true);
$colum = "zhanghao";
$trues = "select * from `yonghu` where `zhanghao` = '".$postData[$colum]."'";
$result = table_sql($trues);
if($result->num_rows<1){
$keyArr = $valArr = array();
foreach ($postData as $key => $value){
if (in_array($key, $this->columData) && $value != ''){
array_push($keyArr,"`".$key."`");
array_push($valArr,"'".$value."'");
}
}
$key = implode(',',$keyArr);
$v = implode(',',$valArr);
$sql = "INSERT INTO `yonghu` (`id`,".$key.") VALUES (".time().",".$v.")";
$result = table_sql($sql);
if (!$result) exit(json_encode(['code'=>500,'msg'=>'注册失败。']));
exit(json_encode(['code'=>0]));
}
exit(json_encode(['code'=>500,'msg'=>"用户名已存在。"]));
}
数据库参考
-- MySQL dump 10.13 Distrib 5.7.31, for Linux (x86_64)
--
-- Host: localhost Database: phps58butf3
-- ------------------------------------------------------
-- Server version 5.7.31
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Current Database: `phps58butf3`
--
/*!40000 DROP DATABASE IF EXISTS `phps58butf3`*/;
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `phps58butf3` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
USE `phps58butf3`;
--
-- Table structure for table `aboutus`
--
DROP TABLE IF EXISTS `aboutus`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `aboutus` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`title` varchar(200) NOT NULL COMMENT '标题',
`subtitle` varchar(200) DEFAULT NULL COMMENT '副标题',
`content` longtext NOT NULL COMMENT '内容',
`picture1` longtext COMMENT '图片1',
`picture2` longtext COMMENT '图片2',
`picture3` longtext COMMENT '图片3',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='关于我们';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `aboutus`
--
LOCK TABLES `aboutus` WRITE;
/*!40000 ALTER TABLE `aboutus` DISABLE KEYS */;
INSERT INTO `aboutus` VALUES (1,'2024-02-20 09:05:52','关于我们','ABOUT US','当你设想门外是寒冷可怕的世界时,你还应该开门出去看看,是否真的如此。如果你有信心,你对前途就不犹豫了。如果你有勇气,你就不怕前途是否有困难或危险了每个人心中都应有两盏灯,一盏是希望的灯,一盏是勇气的灯。有了这两盏灯,我们就不怕海上的黑暗和风涛的险恶了。人的一生很像是在雾中行走。远远望去,只是迷蒙一片,辨不出方向和吉凶。可是,当你鼓起勇气,放下恐惧和怀疑,一步一步向前走去的时候,你就会发现,每走一步,你都能把下一步路看得清楚一点。“往前走,别站在远远的地方观望!”你就可以找到你的方向。','upload/aboutus_picture1.jpg','upload/aboutus_picture2.jpg','upload/aboutus_picture3.jpg');
/*!40000 ALTER TABLE `aboutus` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `chapterremenxiaoshuo`
--
DROP TABLE IF EXISTS `chapterremenxiaoshuo`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `chapterremenxiaoshuo` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`refid` bigint(20) NOT NULL COMMENT '关联表id',
`chapternum` int(11) NOT NULL COMMENT '章节数',
`chaptertitle` varchar(200) NOT NULL COMMENT '章节标题',
`content` longtext NOT NULL COMMENT '章节内容',
`vipread` varchar(200) DEFAULT '否' COMMENT '会员阅读',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=139 DEFAULT CHARSET=utf8 COMMENT='热门小说章节表';
/*!40101 SET character_set_client = @saved_cs_client */;
五、效果图
六、文章目录
目录
第一章绪论 2
1.1研究背景及意义 2
1.2系统研究现状 2
1.3系统研究内容 2
第二章关键技术介绍 3
2.1 PHP开发语言 3
2.2 vue框架 4
2.3 MySQL数据库 4
2.4 B/S模式 4
第三章系统需求分析 6
3.1设计目标 6
3.2系统可行性分析 6
3.2.1技术可行性 6
3.2.2经济可行性 6
3.2.3操作可行性 6
3.3系统UML用例分析 7
3.4系统流程分析 8
3.4.1系统的流程图 8
3.4.2用户登录逻辑流程图 9
第四章系统设计 11
4.1系统功能模块设计 11
4.2数据库设计 11
4.2.1数据库概念设计 11
4.2.2 数据库表设计 12
第五章系统实现 20
5.1前台功能实现 20
5.1.1首页页面功能实现 20
5.1.2个人中心页面实现 21
5.2后台模块实现 22
5.2.1管理员功能实现 22
5.2.2作者功能实现 26
第六章系统测试 27
6.1测试目的 27
6.2测试方法 27
6.3系统测试用例 27
6.3.1平台登录模块的测试 27
6.3.2用户中心模块的测试 28
6.3.3用户管理模块的测试 29
结论 30
参考文献 31
致谢 32
七 、源码获取
下方名片联系我即可!!
大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻
精彩专栏推荐订阅:在下方专栏👇🏻
计算机毕业设计精品实战案例