登陆DiscuzX2.5或UCenter后台管理自动退出的解决方法  

作者:我就是个世界 发表于:2013-03-22
先说登录DiscuzX2.5后台一直无法登录或登录没反应、登录后自动退出的原因,其实是系统为了安全考虑,设置了IP检测,当你的登录ip改变的时候就会出现此问题。

解决DiscuzX2.5的自动退出,把根目录config目录下的config.inc.php里面的chekip关掉就可以了,下面是相关参数解释:[separator]
[code]
$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=否[安全]
[/code]

另外,UCenter中出现的自动退出用COOKIE解决这个问题。

通过这个代码检查数据,然后把COOKIE的在线IP拿来用。

找到文件: UCenter的 model/base.php
查找:
[code]$this->onlineip = $match[0] ? $match[0] : 'unknown';[/code]
在这代码之后插入一段代码:
[code]
//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);
[/code]

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

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

分享:

扫一扫在手机阅读、分享本文

请发表您的评论