博主介绍:
国内互联网知名博主 · 5年软件开发师
🎯 研究方向:
✔ 项目指导 | PPT | 代码实现 | 源码定制 | 代码讲解
Java(SpringBoot / SSM) · Python · Vue ·Mysql数据库 · 微信小程序 · Android
大数据 · 机器学习/深度学习 · React · Go · PHP · Node.js等
源码免费获取:
如需完整源码及数据库脚本,可关注并私信获取,或在评论区留言交流技术问题
大家好,分享一套免费的基于Php+MySQL的动漫网站系统、动漫信息系统 。





动漫介绍网站 角色功能阐述
本系统分为普通用户 、管理员两大使用角色,两类用户权限相互独立,下面分别对二者的功能模块进行详细说明。
一、普通用户功能
普通用户面向动漫爱好者,主要用于浏览动漫资讯、社区交流、管理个人账号,包含 6 大功能:
- 登录:输入账号密码完成身份校验,登录后才可访问个人中心、论坛发帖等需要权限的功能。
- 注册:新用户填写账号、密码等基础信息,创建属于自己的网站账号。
- 系统首页:网站的门户页面,展示热门动漫推荐、公告通知、导航入口,可以快速跳转至各个功能板块。
- 动漫信息:浏览平台内所有动漫资料,查看动漫简介、封面、分类详情,支持动漫收藏操作。
- 动漫交流论坛:用户可以在论坛板块发布帖子、浏览他人话题、评论互动,实现动漫爱好者之间的交流讨论。
- 个人中心:用户管理自身账号的后台,支持修改头像、昵称、性别等个人资料;同时可查看好友列表、聊天私信记录、自己发布过的论坛帖子、收藏的动漫内容。
二、管理员功能
管理员属于平台运维管理者,拥有全站最高权限,负责网站内容、用户、社区秩序的管控,共 10 项功能:
- 系统首页:管理员后台首页,查看网站整体运行概况、各类数据统计入口。
- 用户管理:管理全站注册用户,可以查询用户列表、封禁违规账号、修改用户基础信息。
- 动漫分类管理:维护动漫的分类标签,新增、编辑、删除动漫分类(如热血、治愈、科幻等),规范动漫资源归类。
- 动漫信息管理:动漫资源核心管理模块,管理员上传、新增、修改、下架动漫介绍资料,管控网站展示的全部动漫内容。
- 消息提醒管理:给全站用户推送系统通知、公告消息,管理站内提醒内容。
- 举报信息管理:查看用户提交的论坛、私信等板块的举报记录,审核违规内容,做出删帖、处罚用户等处理。
- 私信管理:监管平台内用户之间的私信聊天内容,排查违规私信信息,维护聊天环境。
- 动漫交流论坛:对论坛板块进行管理,审核帖子、删除违规帖子、管理论坛评论,维护社区交流秩序。
- 系统管理:网站基础配置功能,例如修改轮播图、系统名称、网站参数,管理后台账号密码等系统基础设置。
核心代码:
php
<?php
session_start();
class dongmanxinxiController extends CommonController {
//动漫信息数据表字段
public $columData = [
'id','addtime','dongmanmingcheng','leixing','fengmian','dongmanjieshao',
'dongmanneirong','fabushijian','yonghuzhanghao','thumbsupnum','crazilynum','discussnum','storeupnum'
];
/**
* 【核心1】分页列表查询(后台管理员)GET
*/
public function page(){
//token登录校验
$token = $this->token();
$tokens = json_decode(base64_decode($token),true);
if (!isset($tokens['id']) || empty($tokens['id'])) exit(json_encode(['code'=>401,'msg'=>"你还没有登录。"]));
$userid = $tokens['id'];
$where = " where 1 ";
//普通用户只能查看自己发布的数据
if($tokens['tablename'] == 'yonghu') {
$where .= " and `yonghuzhanghao` = '".$tokens['username']."' ";
}
//分页参数
$page = $_REQUEST['page']??"1";
$limt = $_REQUEST['limit']??"10";
$sort = $_REQUEST['sort']??"id";
$order = $_REQUEST['order']??"asc";
//搜索条件拼接
foreach ($_REQUEST as $k => $val){
if(in_array($k, $this->columData) && $val != ''){
$where.= " and ".$k." like '".$val."'";
}
}
//统计总条数
$countSql = "select * from `dongmanxinxi` ".$where;
$countRes = table_sql($countSql);
$total = $countRes->num_rows;
//分页偏移量
$start = ($page-1)*$limt;
//查询分页数据
$dataSql = "select * from `dongmanxinxi` ".$where." order by ".$sort." ".$order." limit ".$start.",".$limt;
$result = table_sql($dataSql);
$list = [];
while ($row = $result->fetch_assoc()){
array_push($list,$row);
}
exit(json_encode([
'code'=>0,
'data' => [
"total" => $total,
"pageSize" => $limt,
"currPage" => $page,
"list" => $list
]
]));
}
/**
*【核心2】新增动漫 POST
*/
public function save(){
$token = $this->token();
$tokens = json_decode(base64_decode($token),true);
if (!isset($tokens['id']) || empty($tokens['id'])) exit(json_encode(['code'=>401,'msg'=>"你还没有登录。"]));
$tmpData = strval(file_get_contents("php://input"));
$postData = json_decode($tmpData,true);
$keyArr = $valArr = array();
foreach ($postData as $key => $value){
if (in_array($key, $this->columData) && $key != 'id'){
if(!empty($value) || $value === 0) {
array_push($keyArr,"`".$key."`");
array_push($valArr,"'".$value."'");
}
}
}
$k = implode(',',$keyArr);
$v = implode(',',$valArr);
$sql = "INSERT INTO `dongmanxinxi` (".$k.") VALUES (".$v.")";
table_sql($sql);
exit(json_encode(['code'=>0]));
}
/**
*【核心3】修改动漫 POST
*/
public function update(){
$token = $this->token();
$tokens = json_decode(base64_decode($token),true);
if (!isset($tokens['id']) || empty($tokens['id'])) exit(json_encode(['code'=>401,'msg'=>"你还没有登录。"]));
$tmpData = strval(file_get_contents("php://input"));
$postData = json_decode($tmpData,true);
$updateArr = array();
$id = 0;
foreach ($postData as $key => $value){
if (in_array($key, $this->columData)){
if ($key == "id") $id = $value;
if(!empty($value) || $value === 0) {
array_push($updateArr,$key." = '".$value."'");
}
}
}
$setStr = implode(',',$updateArr);
$sql = "UPDATE dongmanxinxi SET ".$setStr." where id = ".$id;
table_sql($sql);
exit(json_encode(['code'=>0]));
}
/**
*【核心4】删除动漫 POST(支持批量删除)
*/
public function delete(){
$ids = strval(file_get_contents("php://input"));
preg_match_all('/\d+/',$ids,$arr);
$str = implode(',',$arr[0]);
$sql = "delete from dongmanxinxi WHERE id in({$str})";
table_sql($sql);
exit(json_encode(['code'=>0]));
}
/**
*【核心5】查询单条动漫详情 GET
*/
public function detail($id=false){
if ($id){
$where = "`id` = ".$id;
}
$sql = "select * from `dongmanxinxi` where ".$where;
$result = table_sql($sql);
$info = $result->fetch_assoc();
exit(json_encode([
'code'=>0,
'data'=> $info
]));
}
/**
*【核心6】动漫点赞 / 点踩
*/
public function thumbsup($id=false){
$type = isset($_REQUEST['type'])?$_REQUEST['type']:"";
if ($type==1){
//点赞+1
$result = $this->andone('dongmanxinxi',$id,'thumbsupnum',1);
}else{
//点踩+1
$result = $this->andone('dongmanxinxi',$id,'crazilynum',1);
}
exit(json_encode(['code'=>0,'msg'=>"投票成功"]));
}
}
- page():动漫信息分页查询(管理员后台列表)
- save():新增动漫信息
- update():修改动漫信息
- delete():批量删除动漫
- detail():获取动漫详情
- thumbsup():动漫点赞、点踩功能
php
<?php
session_start();
class UsersController 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','username','password','role','image'];
/**
* 管理员登录接口
*/
public function login(){
$username = isset($_REQUEST['username'])?$_REQUEST['username']:"";
$password = isset($_REQUEST['password'])?$_REQUEST['password']:"";
$sql = "select * from `users` where username = '".$username."' and password = '".$password."'";
$result = table_sql($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
//生成身份令牌token
$token_array = [
"iat" => time(),
"exp" => time()+7200,
'tablename'=> 'users',
'isAdmin' => 1,
'id' => $row["id"],
"success" => $row
];
$tokens = base64_encode(json_encode($token_array));
exit(json_encode(['code' => 0, 'token' => $tokens]));
}
} else {
exit(json_encode(['code'=>500,'msg'=>"账号或密码错误"]));
}
}
/**
* 分页查询管理员列表
*/
public function page(){
$token = $this->token();
$tokens = json_decode(base64_decode($token),true);
if (!isset($tokens['id']) || empty($tokens['id'])) exit(json_encode(['code'=>403,'msg'=>"你还没有登录。"]));
$page = isset($_REQUEST['page'])?$_REQUEST['page']:"1";
$limt = isset($_REQUEST['limit'])?$_REQUEST['limit']:"10";
$sort = isset($_REQUEST['sort'])?$_REQUEST['sort']:"id";
$order = isset($_REQUEST['order'])?$_REQUEST['order']:"asc";
$startCount = ($page-1)*10;
$sql = "select * from `users` order by ".$sort." ".$order." limit ".$startCount.",".$limt;
$result = table_sql($sql);
$arrayData = array();
while ($datas = $result->fetch_assoc()){
array_push($arrayData,$datas);
}
exit(json_encode(['code'=>0,'data' => ['list' => $arrayData]]));
}
/**
* 新增管理员
*/
public function save(){
$token = $this->token();
$tokens = json_decode(base64_decode($token),true);
if (!isset($tokens['id']) || empty($tokens['id'])) exit(json_encode(['code'=>403,'msg'=>"你还没有登录。"]));
$tmpData = strval(file_get_contents("php://input"));
$postData = json_decode($tmpData,true);
$keyArr = $valArr = array();
foreach ($postData as $key => $value){
if (in_array($key, $this->columData)){
array_push($keyArr,"`".$key."`");
array_push($valArr,"'".$value."'");
}
}
$k = implode(',',$keyArr);
$v = implode(',',$valArr);
$sql = "INSERT INTO `users` (".$k.") VALUES (".$v.")";
table_sql($sql);
exit(json_encode(['code'=>0]));
}
/**
* 修改管理员信息
*/
public function update(){
$tmpData = strval(file_get_contents("php://input"));
$postData = json_decode($tmpData,true);
$v = array();
foreach ($postData as $key => $value){
if (in_array($key, $this->columData) && $key != 'id'){
array_push($v,$key." = '".$value."'");
}
}
$value = implode(',',$v);
$sql = "UPDATE users SET ".$value." where id=".$postData['id'];
table_sql($sql);
exit(json_encode(['code'=>0]));
}
/**
* 批量删除管理员
*/
public function delete(){
$ids = strval(file_get_contents("php://input"));
preg_match_all('/\d+/',$ids,$arr);
$str = implode(',',$arr[0]);
$sql = "delete from users WHERE id in({$str})";
table_sql($sql);
exit(json_encode(['code'=>0]));
}
}