纯手写原生PHP网站管理后台系统 网站管理系统
一、源码简介
一套纯手写原生的PHP网站管理后台,前端利用LayUI实现,实现PHP初学者专研学习使用,对于PHP学习的人,只有熟悉了原生的PHP开发,才适合利用其它框架搭建自己的网站平台。封城期间,百无聊赖,于是利用PHP8手写了一套原生的管理系统,以供新手学习参考使用。同时,利用nodejs也写了一套,两套共用一个数据库。功能和操作界面基本一样。
本系统最大的难点一是安全策略,另一个就是递归分类的算法,要实现的功能有很多,有的是列出出树形结构,有时候需要根据子ID查询父级,有时候,需要父ID查询所有子级,还有根据子级查询兄弟级等很多算法,研究了很久。大概经历了两月左右,其间还有其它事情要做,陆陆续续将所有的问题一一解决,最后,终于出了第一版。还有第二版,第三版,不断在改进中。另外,还写了一个NODEJS版本。方便不同的用户需要。
后台登录界面
二、部分代码演示
这是简单的登录管理后台界面,登录后,登录代码很简单,即可进入管理首页。
session_start();include("../inc/sql.php");//登录页专用防SQL注册函数function str_check( $value ) { if(!get_magic_quotes_gpc()) { // 进行过滤 $value = addslashes($value); }$value = str_replace("'", "\'", $value); $value = str_replace("-", "——", $value); $value = str_replace("%", "\%", $value); return $value; } if (isset($_GET['action']) && $_GET['action'] == 'logout' ) {setcookie('id','',time()-3600);setcookie('account','',time()-3600);session_destroy();header('location:login.php');}if(trim($_COOKIE['id']) and trim($_SESSION['account'])) {echo '<script>window.location.href="home.php";</script>';return false;}if(!empty($_POST)){if ($_POST['vcode'] !== $_SESSION["vcode"]) {echo '<script>window.alert("验证码不正确");history.back();</script>';return false;}if(empty($_POST['account'])){echo '<script>window.alert("请输入账号");history.back();</script>';return false;}if(empty($_POST['password'])){echo '<script>window.alert("请输入密码");history.back();</script>';return false;}$stmt = $pdo->prepare('SELECT * From admin WHERE `account`="'.str_check($_POST['account']).'"');$stmt->execute();$admin = $stmt->fetchAll();if(empty($admin)){echo '<script>window.alert("账号不存在");history.back();</script>';return false;}$find = $admin[0];/*--------------------*//*--------------------*/if($find['password'] != md5($_POST['password'])){echo '<script>window.alert("密码不正确");history.back();</script>';return false;}setcookie('id',$find['id']);setcookie('account',$find['account']);$_SESSION['account'] = $find['account'];echo '<script>window.alert("登录成功");window.location.href="home.php";</script>';return false;}
三、运行截图
登录后主页
文章列表管理界面
分类列表管理界面
分类添加界面
新闻发布界面
产品发布界面
友情链接列表管理
前端读产端读取数据展示
先从数据库中获取到数据,构建树型分组,然后,构建导航,再利用JQ实现多级的显示。
function getTreeMenu($data , $pId =0) {$tree = [];foreach ( $data as $k => $v ) {if ( $v['pid'] == $pId ){//父亲找到儿子$v['children'] = getTreeMenu ( $data , $v['id']);$tree[] = $v ;//unset($data[$k]);}}return $tree ;
}
//$tree = getTree( $data , 0);
//构建导航,需要这套系统的朋友可以寇寇 190151304
function buildMenu($menuArray) { foreach ($menuArray as $node) {if(empty($node['links'])) {$links = 'list.php?id='.$node['id'];}else{$links = $node['links']; }if ($node['isblank'] == '1') {$blank = ' target="_blank"';}echo '<li><a href="'.$links.'" '.$blank.'>' . $node['name'] . '</a>'; if (!empty($node['children'])) { echo '<ul>'; buildMenu($node['children']); echo '</ul>'; } echo '</li>'; }
}
<nav class="main-navigation"><ul class="nav-menu d-flex"><?php$stmt = $pdo->prepare('SELECT * FROM class WHERE isnav="1" ORDER BY sort,id ASC');$stmt->execute();$menu = $stmt->fetchAll();$nav_arr = getTreeMenu($menu);//print_r($nav_arr) ;?><li><a href="index.php">首页</a></li><?php echo buildMenu($nav_arr); ?></ul>
</nav>
<script>$(function(){$('.nav-menu li').hover(function(){$(this).children('ul').stop(true).slideDown();},function(){$(this).children('ul').stop(true).slideUp();})});
</script>
对于大神来说,这些技术都是弱鸡,但是对于初学者来说,很难的。每一步的实现都是经过耗费了无数脑细胞才能完成的。
经过两个多月的努力,第一版终于完成了,而且还给很多客户应用了很多次,没有任何错误。只是在实践中,发现很多不完美的地方,于是又更新为第二版。后来,又参考很多CMS的做法,现在已经正在完善第三版。
初学者有一套参考的完整的代码,是一件非常幸运的事情,可以省去很多查找资料的麻烦。代码拿来就用,或者直接在原基础上完善修改,完全可以实现一套全新的自己开发的独立系统。
需要获取源码的朋友请关注VX公众号:比特网络服务
纯手写原生PHP网站管理后台系统 网站管理系统相关推荐
- HTML5期末大作业:商城网站设计——仿唯品会购物商城(5页) 纯手写-高质量 HTML+CSS+JavaScript
HTML5期末大作业:商城购物网站设计--仿唯品会商城(5页) 纯手写 HTML+CSS+JavaScript 期末作业HTML代码 学生网页课程设计期末作业下载 web网页设计制作成品 常见网页设计 ...
- 【手写系列】纯手写实现一个高可用的RPC
前言 在实际后台服务开发中,比如订单服务(开发者A负责)需要调用商品服务(开发者B负责),那么开发者B会和A约定调用API,以接口的形式提供给A.通常都是B把API上传到Maven私服,然后B开始写A ...
- 纯手写SpringFramework-完结版(原创)
个人简介 作者是一个来自河源的大三在校生,以下笔记都是作者自学之路的一些浅薄经验,如有错误请指正,将来会不断的完善笔记,帮助更多的Java爱好者入门. 文章目录 个人简介 纯手写SpringFrame ...
- 【全栈之巅】Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台学习笔记(3.11-3.12)
[全栈之巅]Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台学习笔记(3.11-3.12) 本项目是 学习Bilibili 全栈之巅 视频教程相关源码和体会 https://gi ...
- Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台
前言 最近在跟着Johnny的全栈之巅系列视频教程学习使用NodeJS+Express+Element-UI+MongoDB等开发王者荣耀,服务端server,移动端web,admin,学到了不少东西 ...
- 学习【全栈之巅】Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台笔记(2.8-2.9)
[全栈之巅]Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台 本项目是 学习Bilibili 全栈之巅 视频教程相关源码和体会 https://gitee.com/blaunic ...
- 学习【全栈之巅】Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台笔记(1.1-2.5)
[全栈之巅]Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台 本项目是 学习Bilibili 全栈之巅 视频教程相关源码和体会 https://gitee.com/blaunic ...
- 【全栈之巅】Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台学习笔记(3.6-3.10)
[全栈之巅]Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台学习笔记(3.6-3.10) 本项目是 学习Bilibili 全栈之巅 视频教程相关源码和体会 https://git ...
- 【全栈之巅】Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台学习笔记(3.16-3.20)
[全栈之巅]Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台学习笔记(3.16-3.20) 本项目是 学习Bilibili 全栈之巅 视频教程相关源码和体会 https://gi ...
最新文章
- 【狼】unity3d point light 个数限制更改
- Android-处理EditText中的“ Enter”
- linux快速还原oracle,linux下恢复误删除oracle的数据文件
- 判断scrollview是否滚动到了底部
- gulp 安装时一直提示缺少模块( Cannot find module 'gulp-load-plugins')
- Lucas定理及组合数取模
- [转载] Python3 数组
- RocketMQ有哪些消息类型?springboot如何整合rocketMQ
- 计算机系统结构开设学校,计算机系统结构专业介绍及考研院校排名
- 实习成长之路——Spring Bean 二:如何注册BeanDefinition?
- Vim 多行剪切、复制和删除
- LINUX下载编译OpenSSL
- sql server 2005_全文目录
- 面向初学者的 Android 应用开发基础知识
- usb_modeswitch下载与安装
- 山寨智能机多采用盗版Windows Mobile系统
- CentOS7 部署 RAID 磁盘阵列
- 微信小程序开发之视频video组件报错:渲染层网络层错误
- 教师管理系统代码html,江苏省教职工信息管理系统:https://www.jste.net.cn/cmsplus/index.html...
- 移动端电商首页制作-京东