pbootcms模板忘记后台密码怎么找回?

news/2024/12/26 13:15:33/文章来源:https://www.cnblogs.com/hwrex/p/18401080

此工具用于忘记PbootCMS后台用户账号密码时进行重置。新建一个php文件,然后写入下面代码。稍后上传网站根目录,  访问文件就可以进入重置页面, 后续根据提示操作即可。 

<?php
/*** @copyright (C)2016-2099 Hnaoyun Inc.* @author XingMeng* @email hnxsh@foxmail.com* @date 2017年3月13日*  默认主页*/
namespace app\admin\controller;use core\basic\Controller;
use app\admin\model\IndexModel;class IndexController extends Controller
{private $model;public function __construct(){$this->model = new IndexModel();}// 登录页面public function index(){if (session('sid')) {location(url('admin/Index/home'));}$this->assign('admin_check_code', $this->config('admin_check_code'));$this->display('index.html');}// 主页面public function home(){// 手动修改数据名称if (get('action') == 'moddb') {if ($this->modDB()) {alert_back('修改成功!');} else {alert_back('修改失败!');}}// 删除修改后老数据库(上一步无法直接修改删除)if (issetSession('deldb')) {@unlink(ROOT_PATH . session('deldb'));unset($_SESSION['deldb']);}$dbsecurity = true;// 如果是sqlite数据库,并且路径为默认的,则标记为不安全if (get_db_type() == 'sqlite') {// 数据库配置含有默认名字则进行修改if (strpos($this->config('database.dbname'), 'pbootcms') !== false) {if (get_user_ip() != '127.0.0.1' && $this->modDB()) { // 非本地测试时尝试自动修改数据库名称$dbsecurity = true;} else {$dbsecurity = false;}} elseif (file_exists(ROOT_PATH . '/data/pbootcms.db')) { // 存在多余的默认数据库文件则改名rename(ROOT_PATH . '/data/pbootcms.db', ROOT_PATH . '/data/' . get_uniqid() . '.db');}} elseif (file_exists(ROOT_PATH . '/data/pbootcms.db')) {rename(ROOT_PATH . '/data/pbootcms.db', ROOT_PATH . '/data/' . get_uniqid() . '.db');}$this->assign('dbsecurity', $dbsecurity);if (!session('pwsecurity')) {location(url('/admin/Index/ucenter'));}$this->assign('server', get_server_info());$this->assign('branch', $this->config('upgrade_branch') == '3.X.dev' ? '3.X.dev' : '3.X');$this->assign('revise', $this->config('revise_version') ?: '0');$this->assign('snuser', $this->config('sn_user') ?: '0');$this->assign('site', get_http_url());$this->assign('user_info', $this->model->getUserInfo(session('ucode')));$this->assign('sum_msg', model('admin.content.Message')->getCount());// 内容模型菜单$model = model('admin.content.Model');$models = $model->getModelMenu();foreach ($models as $key => $value) {$models[$key]->count = $model->getModelCount($value->mcode)->count;}$this->assign('model_msg', $models);$this->display('system/home.html');}// 异步登录验证public function login(){if (!$_POST) {return;}// 在安装了gd库时才执行验证码验证if (extension_loaded("gd") && $this->config('admin_check_code') && strtolower(post('checkcode', 'var')) != session('checkcode')) {json(0, '验证码错误!');}// 就收数据$username = post('username');$password = post('password');$checkcode = post('checkcode');$formcheck = post('formcheck');if (!preg_match('/^[\x{4e00}-\x{9fa5}\w\-\.@]+$/u', $username)) {json(0, '用户名含有不允许的特殊字符!');}if (!$username) {json(0, '用户名不能为空!');}if (!$password) {json(0, '密码不能为空!');}if (!$formcheck) {json(0, '表单提交校验失败,请刷新后重试!');}if (!!$time = $this->checkLoginBlack()) {$this->log('登录锁定!');json(0, '您登录失败次数太多已被锁定,请' . $time . '秒后再试!');}// 执行用户登录$where = array('username' => $username,'password' => encrypt_string($password));// 判断数据库写入权限if ((get_db_type() == 'sqlite') && !is_writable(ROOT_PATH . $this->config('database.dbname'))) {json(0, '数据库目录写入权限不足!');}if (!!$login = $this->model->login($where)) {session_regenerate_id(true);session('sid', encrypt_string(session_id() . $login->id)); // 会话标识session('M', M);session('id', $login->id); // 用户idsession('ucode', $login->ucode); // 用户编码session('username', $login->username); // 用户名session('realname', $login->realname); // 真实名字if ($where['password'] != '14e1b600b1fd579f47433b88e8d85291') {session('pwsecurity', true);}session('acodes', $login->acodes); // 用户管理区域if ($login->acodes) { // 当前显示区域session('acode', $login->acodes[0]);} else {session('acode', '');}session('rcodes', $login->rcodes); // 用户角色代码表session('levels', $login->levels); // 用户权限URL列表session('menu_tree', $login->menus); // 菜单树session('area_map', $login->area_map); // 区域代码名称映射表session('area_tree', $login->area_tree); // 用户区域树$this->log('登录成功!');json(1, url('admin/Index/home'));} else {$this->setLoginBlack();$this->log('登录失败!');session('checkcode', mt_rand(10000, 99999)); // 登录失败,随机打乱原有验证码json(0, '用户名或密码错误!');}}// 退出登录public function loginOut(){session_unset();location(url('/admin/Index/index'));}// 用户中心,修改密码public function ucenter(){if ($_POST) {$username = post('username'); // 用户名$realname = post('realname'); // 真实姓名$cpassword = post('cpassword'); // 现在密码$password = post('password'); // 新密码$rpassword = post('rpassword'); // 确认密码if (!$username) {alert_back('用户名不能为空!');}if (!$cpassword) {alert_back('当前密码不能为空!');}if (!preg_match('/^[\x{4e00}-\x{9fa5}\w\-\.@]+$/u', $username)) {alert_back('用户名含有不允许的特殊字符!');}$data = array('username' => $username,'realname' => $realname,'update_user' => $username);// 如果有修改密码,则添加数据if ($password) {if ($password != $rpassword) {alert_back('确认密码不正确!');}$data['password'] = encrypt_string($password);if ($data['password'] != '14e1b600b1fd579f47433b88e8d85291') {session('pwsecurity', true);} else {session('pwsecurity', false);}}// 检查现有密码if ($this->model->checkUserPwd(encrypt_string($cpassword))) {if ($this->model->modUserInfo($data)) {session('username', post('username'));session('realname', post('realname'));$this->log('用户资料成功!');success('用户资料修改成功!', -1);}} else {$this->log('用户资料修改时当前密码错误!');alert_location('当前密码错误!', -1);}}$this->display('system/ucenter.html');}// 切换显示的数据区域public function area(){if ($_POST) {$acode = post('acode');if (in_array($acode, session('acodes'))) {session('acode', $acode);cookie('lg', $acode); // 同步切换前台语言}location(url('admin/Index/home'));}}// 清理缓存public function clearCache(){if (get('delall')) {$rs = path_delete(RUN_PATH);} else {$rs = (path_delete(RUN_PATH . '/cache') && path_delete(RUN_PATH . '/complile') && path_delete(RUN_PATH . '/config') && path_delete(RUN_PATH . '/upgrade'));}cache_config(); // 清理缓存后立即生成新的配置if ($rs) {if (extension_loaded('Zend OPcache')) {opcache_reset(); // 在启用了OPcache加速器时同时清理}$this->log('清理缓存成功!');alert_back('清理缓存成功!', 1);} else {$this->log('清理缓存失败!');alert_back('清理缓存失败!', 0);}}// 清理系统缓存public function clearOnlySysCache(){if (get('delall')) {$rs = path_delete(RUN_PATH);} else {$rs = (path_delete(RUN_PATH . '/complile') && path_delete(RUN_PATH . '/config') && path_delete(RUN_PATH . '/upgrade'));}cache_config(); // 清理缓存后立即生成新的配置if ($rs) {if (extension_loaded('Zend OPcache')) {opcache_reset(); // 在启用了OPcache加速器时同时清理}$this->log('清理缓存成功!');alert_back('清理缓存成功!', 1);} else {$this->log('清理缓存失败!');alert_back('清理缓存失败!', 0);}}// 清理会话public function clearSession(){ignore_user_abort(true); // 后台运行set_time_limit(7200);ob_start();$output['code'] = 1;$output['data'] = '执行成功,后台自动清理中!';$output['tourl'] = '';echo json_encode($output);ob_end_flush();flush();$rs = path_delete(RUN_PATH . '/session', false, array('sess_' . session_id()));}// 文件上传方法public function upload(){$upload = upload('upload');if (is_array($upload)) {json(1, $upload);} else {json(0, $upload);}}// 检查是否在黑名单private function checkLoginBlack(){// 读取黑名单$ip_black = RUN_PATH . '/data/' . md5('login_black') . '.php';if (file_exists($ip_black)) {$data = require $ip_black;$user_ip = get_user_ip();$lock_time = $this->config('lock_time') ?: 900;$lock_count = $this->config('lock_count') ?: 5;if (isset($data[$user_ip]) && $data[$user_ip]['count'] >= $lock_count && time() - $data[$user_ip]['time'] < $lock_time) {return $lock_time - (time() - $data[$user_ip]['time']); // 返回剩余秒数}}return false;}// 添加登录黑名单private function setLoginBlack(){// 读取黑名单$ip_black = RUN_PATH . '/data/' . md5('login_black') . '.php';if (file_exists($ip_black)) {$data = require $ip_black;} else {$data = array();}// 添加IP$user_ip = get_user_ip();$lock_time = $this->config('lock_time') ?: 900;$lock_count = $this->config('lock_count') ?: 5;if (isset($data[$user_ip]) && $data[$user_ip]['count'] < $lock_count && time() - $data[$user_ip]['time'] < $lock_time) {$data[$user_ip] = array('time' => time(),'count' => $data[get_user_ip()]['count'] + 1);} else {$data[$user_ip] = array('time' => time(),'count' => 1);}// 写入黑名单check_file($ip_black, true);return file_put_contents($ip_black, "<?php\nreturn " . var_export($data, true) . ";");}// 修改数据库名称private function modDB(){$file = CONF_PATH . '/database.php';$sname = $this->config('database.dbname');$dname = '/data/' . get_uniqid() . '.db';$sconfig = file_get_contents($file);$dconfig = str_replace($sname, $dname, $sconfig);if (file_put_contents($file, $dconfig)) {if (!copy(ROOT_PATH . $sname, ROOT_PATH . $dname)) {file_put_contents($file, $sconfig); // 回滚配置} else {session('deldb', $sname);return true;}}return false;}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/793264.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

受 LabelImg 启发的基于 web 的图像标注工具,基于 Vue 框架

受 LabelImg 启发的基于 web 的图像标注工具,基于 Vue 框架哟,网友们好,年更鸽子终于想起了他的博客园密码。如标题所述,今天给大家带来的是一个基于 vue2 的图像标注工具。至于它诞生的契机呢,应该是我导 pass 掉了我的提议(让甲方使用 LabelImg 进行数据标注),说是要…

Parse error: syntax error, unexpected function (T_FUNCTION) in core\function\helper.php on line 80

遇到 Parse error: syntax error, unexpected function (T_FUNCTION) 的错误,通常是因为 PHP 代码中存在语法错误。这种错误通常发生在 PHP 版本不兼容的情况下,或者代码本身有语法问题。 分析错误 错误信息指出在 \core\function\helper.php 文件的第 80 行出现了语法错误。…

DNS胶水记录和DNS查询

DNS 胶水记录和DNS查询DNS 胶水记录DNS 系统 胶水记录(Glue Records) 过程抓包 完整解析过程解释 其他DNS 系统 了解过 DNS 的都知道,DNS 是一个层状系统,域名的格式是使用.分割,比如: # 最后一个.代表根 www.example.com.一个终端想要访问域名为www.example.com的web页面…

忘记PbootCMS后台用户账号密码时进行重置resetpw.php

<?php /*** @copyright (C)2016-2099 Hnaoyun Inc.* @license This is not a freeware, use is subject to license terms* @author XingMeng* @email hnxsh@foxmail.com* @date 2018年11月17日* 重置PbootCMS用户密码*/ // 设置字符集编码、IE文档模式 header(Content-Ty…

PbootCMS怎么修改管理员密码

管理员由于比较特殊,在系统用户管理中并不能修改,那怎么修改admin的密码呢? 其实每个用户登录后在右上角都可以修改自己的密码,如下图:扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业仿…

卸载IBM Installation Manager的失败提示及解决方式

1、问题描述如上图所示,按常规方式卸载 IBM Installation Manager 失败,并出现相关提示信息。 在卸载IBM Installation Manager之前,必须卸载由它安装的所有产品。2、原因分析安装 IBM 的相关软件时,还附带安装了 License Key Administrator ,因此需要先卸载 License Key …

pbootcms网站后台登陆时验证码不显示

PbootCms验证码图片显示,常见于阿里云虚拟主机中。这个问题主要是阿里云虚拟主机的配置问题。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业仿站、网站修改、网站改版、BUG修复、问题处理…

Utuntu安装nginx并部署Vue

一、linux下载Ningx 1.下载nginx相关依赖包 apt-get install gccapt-get install libpcre3 libpcre3-devapt-get install zlib1g zlib1g-devsudo apt-get install opensslsudo apt-get install libssl-dev新建nginx的安装目录cd /optmkdir nginxcd nginx3.通过wget下载nginx安装…

pbootcms程序后台登录页面修改的方法

找到根目录的文件夹apps / admin / view / default /里面的index.html上用编辑器(下面有编辑器下载地址)打开这个文件,找到对于的文字和链接修改。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承…

pbootcms手机访问不解决办法

如果PbootCMS网站在手机设备上访问时出现问题,比如显示404错误或者布局错乱等问题,可以采取以下措施来解决: 1. 明确站点结构 首先需要确定你的站点是采用哪种结构:PC + WAP 结构:即分别有电脑版和手机版两个版本。 响应式设计:一个版本自动适应不同设备。 单一PC版:只有…

9.30~9.5 9.6~9.8小集训

有困难自己解决,没困难创造困难8.30~9.1 给开学考试起了个一调的名 不懂我考这玩意的意义( 又不是放假前没考过 总不能是考验我两个月不学 whk 还能记住多少吧 😅 我高考前也给我俩月的假? 包摆烂的 语文英语先放一边 数学看到三角函数就给跳了,结果五道大题空了三道 😋…