服务器之家:专注于服务器技术及软件下载分享
分类导航

DEDECMS|帝国CMS|Discuz|PHPCMS|Wordpress|ZBLOG|ECSHOP|苹果CMS|极致CMS|CMS系统|

服务器之家 - 建站程序 - Discuz - Discuz、UCenter登陆管理后台自动退出的解决方法

Discuz、UCenter登陆管理后台自动退出的解决方法

2019-09-25 14:43Discuz教程网 Discuz

配置论坛的时候频频出现自动退出的情况,随便搜了下,发现还真的是有这个问题,有人说是bug,其实也不算是bug,系统为了安全考虑,设置了IP检测,而我家里使用的adsl宽带ip经常会改变,而且最近还会频频的断线重连,所以经常

最近趁着crazydomains免费asia域名的活动,注册了一个Groovy.asia的域名,周末无聊想搭建一个论坛,供收集整理相关学习资料分享,随手安装了曾经最熟悉的康盛Discuz,X1之后好久没有,发现已经2.5,满心欢喜的装上了,却不料配置论坛的时候频频出现自动退出的情况,随便搜了下,发现还真的是有这个问题,有人说是bug,其实也不算是bug,系统为了安全考虑,设置了IP检测,而我家里使用的adsl宽带ip经常会改变,而且最近还会频频的断线重连,所以经常自动退出。 

直奔主题,解决DiscuzX2.5的自动退出,把根目录config目录下的config.inc.php里面的chekip关掉就可以了,下面是相关参数解释: 
 

复制代码

代码如下:


$admincp['checkip'] = 0; // 后台管理操作是否验证管理员的 IP, 1=是[安全], 0=否。仅在管理员无法登陆后台时设置 0。 
$admincp['tpledit'] = 0; // 是否允许在线编辑论坛模板 1=是 0=否[安全] 
$admincp['runquery'] = 1; // 是否允许后台运行 SQL 语句 1=是 0=否[安全] 
$admincp['dbimport'] = 1; // 是否允许后台恢复论坛数据 1=是 0=否[安全] 
$admincp['checkip'] = 0; // 后台管理操作是否验证管理员的 IP, 1=是[安全], 0=否。仅在管理员无法登陆后台时设置 0。 
$admincp['tpledit'] = 0; // 是否允许在线编辑论坛模板 1=是 0=否[安全] $admincp['runquery'] = 1; // 是否允许后台运行 SQL 语句 1=是 0=否[安全] 
$admincp['dbimport'] = 1; // 是否允许后台恢复论坛数据 1=是 0=否[安全] 


另外,网上有朋友反映,UCenter中出现的自动退出不能解决,这点我这边没有发现,既然有人提出,就顺便分享下吧,网上的方法,用COOKIE解决这个问题。 

通过这个代码检查数据,然后把COOKIE的在线IP拿来用。 
找到文件: UCenter的 model/base.php 
查找: 

复制代码

代码如下:


$this->onlineip = $match[0] ? $match[0] : 'unknown'; 


在这代码之后插入一段代码: 

复制代码

代码如下:


//COOKIE < => onlineIP : 2012-05-05 Ipwise.cn 
$isonlineIP = isset($_COOKIE['onlineipd']) && !empty($_COOKIE['onlineipd']); 
if($isonlineIP){ 
$this->onlineip = $_COOKIE['onlineipd']; 
}else{ 
setcookie("onlineipd", $this->onlineip, time()+3600, "/"); 

unset($isonlineIP); 


保存后上传覆盖问题就解决了。 

以上方法理论上支持Discuz系列中所有实现了此功能的版本,具体就不再列举了,大家有需要可以自己尝试。

延伸 · 阅读

精彩推荐