最近帮朋友排查一个问题
网站用的帝国cms6.6系统,二次开发的,后台登陆账号后立马退出登录,提示"您还未登录"
虽然已用帝国cms多年,但是此问题在之前从未出现过,网上搜遍了各种方法去解决也都未成功
但是经过汇总:
造成帝国cms登陆马上退出的原因大概有以下几种情况
1.本地环境时间和服务器空间不符
因为是外贸站,服务器用的是美国时间,本地是北京时间,第一个想到会不会是这个问题,但是不管我将服务器换成北京时间,还是本地换成美国时间,都为成功
同时查看了php.ini中date.timezone的配置以及调试了帝国原生配置文件
1 2 |
|
都未能解决问题,此路不通换其他路
2.权限问题
怀疑是cookie无法写入的问题删除e/data/adminlogin目录下的log临时文件;然后当登录的时候,专门查看了e/data/adminlogin下,确认没有新文件或者更新文件生成
说明和文件权限有关系,在服务器上修改了文件权限为777后,发现有文件生成了,但是问题依旧,what?理论上说应该解决了?为什么还没有?
3.关闭登陆文件验证
4.看看有没有设置ip登陆验证$do_ckhloginip
首先是关闭ip登陆验证是设置在程序中的,所以最终的解决方法就是,打开e/class/config.php文件,找到$do_ckhloginip=1,修改为$do_ckhloginip=0,这样文件验证就会被关闭。
//后台是否验证登录IP,0为不验证,1为验证
5.关闭登陆文件验证$do_ckhloginfile
同样打开e/class/config.php中的
1 2 3 4 |
|
切记:此操作会降低后台的安全性。我不建议用此种方法
而且此帝国cms是二次开发的,更改后仍然没有解决问题
6.登陆管理员账号,不要登陆低权限账号
一开始朋友发我的账号是低权限账号,在文件权限问题解决后一直还有问题,后来那边反馈说客户可以登录上了!,what?
我赶忙测试了还是问题依旧,为什么客户可以登录上了,结果把管理员账号发来成功登录
看了后台,说是二次开发的,后台系统说白了就是原生系统的缩减版,这个问题始料未及,因为原生的基本不会存在这一的情况,推测应该是二次开发的问题
后记:7. 更换PHP版本
后台登陆成功后发现有些系统有错误,如留言系统留言后会直接报错,经过排查发现
1 |
|
这是明显的版本过高,因为帝国cms6.6是11年出来的,目前都7.5了,从PHP5.6版本降到了5.3以下,问题解决
所以最终,通过2和6解决了我的问题,因为每个场景不一样,如果您有幸看到这篇文章,可以试试其他方法