搜索

当前位置:首页 > 全栈分享 > phpcms > 正文

phpcms修改后台登录函数详细步骤

发布时间:2019-03-29 23:27:20作者:魏义齐阅读:()

本文为博主原创文章,未经博主允许不得转载。

了解phpcms的都知道,若不修改后台登录函数,其它方法修改后台路径,后台地址依然是域名/index.php?m=admin&c=index&a=login,只有修改了后台登录函数,才能彻底修改后台地址。

先说说折腾过程:

刚开始参考的教程:https://www.cnblogs.com/suskart/p/3793429.html,这篇文章应该是从哪抄过来的,并不是实操编写,文中有多处错误,比如刚开始说某某路径下是可以没有文件的,这纯粹是扯淡;再比如3.2把替换代码写反了,在文章“phpcms表单向导使用教程”末尾我写道APP_PATH是网站的动态域名也就是v9的首页,既然是避免跳转到首页那此处就是写反了,而且也没强调修改函数;文末一句话说的糊里糊涂的,就算你往对里想也跟文章开头冲突。我最讨厌这种不负责任的文章,百度的内容生态就是被这样破坏的,这也是我为什么要在骆海滨的文章评论区辩论的原因。

然后我想到群友在群里分享的phpcms修订版把后台登录函数设定为在安装时可以自定义,我就把文件拉出来安装了,然后打开上面不负责任教程里说的几个文件对照着改,完美修改后台登录函数。

废话完了,重点开始:

第一步
:新建一个文件夹,比如myadmin,里面放index.php,代码如下:
<?php header('location:../index.php?m=admin&a=myadmin');?> 

第二步:打开/phpcms/modules/admin/index.php,第27行(本文行数均以notepad为准,为防行数差异我把修改前整行代码也贴出来)将
public function login() 
修改为
public function myadmin() 

第60行将
if(!$r) showmessage(L('user_not_exist'),'?m=admin&c=index&a=login');
修改为
if(!$r) showmessage(L('user_not_exist'),'?m=admin&c=index&a=myadmin');

第73行将
showmessage(L('password_error',array('times'=>$times)),'?m=admin&c=index&a=login',3000);
修改为
showmessage(L('password_error',array('times'=>$times)),'?m=admin&c=index&a=myadmin',3000);

第118行将
if(!$r) showmessage(L('user_not_exist'),'?m=admin&c=index&a=login');
修改为
if(!$r) showmessage(L('user_not_exist'),'?m=admin&c=index&a=myadmin');

第123行将
header("location:?m=admin&c=index&a=login&dosubmit=1&card=1");
修改为
header("location:?m=admin&c=index&a=myadmin&dosubmit=1&card=1");

第141行将
showmessage(L('logout_success').$phpsso_logout,'?m=admin&c=index&a=login');
修改为
showmessage(L('logout_success').$phpsso_logout,'?m=admin&c=index&a=myadmin');

这个文件总共要修改六处。

第三步:打开/phpcms/modules/admin/classes/admin.class.php,第35行将
if(ROUTE_M =='admin' && ROUTE_C =='index' && in_array(ROUTE_A, array('login', 'public_card'))) {
修改为
if(ROUTE_M =='admin' && ROUTE_C =='index' && in_array(ROUTE_A, array('myadmin', 'public_card'))) {

第166行将
if(ROUTE_M =='admin' && ROUTE_C =='index' && in_array(ROUTE_A, array('login', 'init', 'public_card'))) return true;
修改为
if(ROUTE_M =='admin' && ROUTE_C =='index' && in_array(ROUTE_A, array('myadmin', 'init', 'public_card'))) return true;

第217行将
showmessage(L('admin_login'),'?m=admin&c=index&a=login');
修改为
showmessage(L('admin_login'),'?m=admin&c=index&a=myadmin');

第四步:打开/phpcms/modules/admin/templates/login.tpl.php,第38行里将
<form action="index.php?m=admin&c=index&a=login&dosubmit=1" method="post" name="myform">
修改为
<form action="index.php?m=admin&c=index&a=myadmin&dosubmit=1" method="post" name="myform">

此时你的后台登录函数修改完毕,输入域名/myadmin会打开后台,显示后台地址是域名/index.php?m=admin&a=myadmin。

别忘了第五步:删除原来的admin.php,设置robots。

后台路径是要禁止抓取的,如果写成Disallow: /myadmin,在robots.txt可以访问的前提下,跟没修改后台登录函数一样,所以应该写成Disallow: /m*/表示禁止抓取所有以m开头的文件夹下的文件,如果根目录下还有别的以m开头的文件可以写成Disallow: /my*/,另外更安全起见myadmin这个文件夹建议大家采用英文和数字混合。

这是一篇不会任何代码的人都能看得懂的教程,如果还有问题右边进群讨论。

其实phpcms已经很安全了,指定域名访问后台,如果你怕解析当前网站域名的二级域名被人查出来访问后台,你可以解析另外一个域名的二级域名绑定后台,但你要处理好搜索引擎抓取问题,这是第一重安全;第二重安全验证码这就不说了,打开你后台了又能怎样,你把错误次数设置为三次,只要你密码设置的不那么傻瓜,我还没听说谁把phpcms后台登录密码破解了的,除非数据库被入侵。

我修改后台登录函数是因为我发现后台日志文件里老有外地ip,来源路径是后台路径,不管是谁这个行为挺烦的,我的目的就是防止这种苍蝇行为。

本文标签:phpcms后台 ,您可以阅读与「phpcms后台 」相关的所有文章

魏义齐全栈技术交流:魏义齐全栈技术交流

相关阅读

    无相关信息

上一篇:phpcms有代码的文章再次编辑时在编辑器中显示错乱如何解决下一篇:深究phpcms缩略图模糊问题

赞助本站

原创不易,您的赞助就是博主更新的动力!

赞助本站可在赞助光荣榜留下外链信息,支付宝扫此二维码可领红包