【插件资讯】插件名称:[转]禁止双重登入
适用版本:7.0
语言编码:通用
插件作者:author NTjames 或者叫 Cyril Yau
版权所属:author NTjames 或者叫 Cyril Yau
原帖连结:
http://www.alan888.com/Discu...119-1-2.html支持网站:
http://www.alan888.com/Discu...119-1-2.html【插件说明】作者前言:
因为小弟快要去加拿大,决定未完成测试也要发放,怕去了加拿大就没有机会了,我一定要『遗祸AL8』
由于最近发觉有些会户帐号有多于一名用家同时使用(唔知点解架啵- -" ) ,只好增加这个功能,阻止用家登入正在使用中的帐号
因为,小弟在7.1的新核心相容唔到...只好手动添加
此插件的帐号是否在使用中是经cdb_sessions查询,会员登出后cdb_sessions会自动更新
但若会员有习惯去不登出离开,则cdb_sessions需要等阁下于后台调节缓存更新时间,自行更新
未来路向:
如有需要,完成IP Check功能
如果技术上许可,加上强行踢另一名使用中的用家离线
尽量完成在使用讨论区功能时,阻止多于一位用家使用同一帐号[即所有action执行前都要检查]
版权问题
1.本作者非常欢迎各位分享,但请在转帖时在文章主题加上[转]并保留版权资讯
2.如有必要进行二次修改,请务必通知我(Alan888的会员请PM我(NTjames),其他的会员请EMAIL(
oops.idiot.galaxy@gmail.com或
cyrilyau821@gmail.com)
Discuz 7.1 修改 1./include/login.func.php
复制程式
if(!$member) {
return -1;
}
下加:
复制程式
$usercheck = $db->result_first("SELECT COUNT(*) FROM {$tablepre}sessions WHERE username='$username'");
if($usercheck) {
return -2;
}
2../logging.php
找:
复制程式
} elseif($result == -1) {
$ucresult['username'] = addslashes($ucresult['username']);
$auth = authcode("$ucresult[username]\t".FORMHASH, 'ENCODE');
if($inajax) {
$message = 2;
$location = $regname.'?action=activation&auth='.rawurlencode($auth);
include template('login');
} else {
showmessage('login_activation', $regname.'?action=activation&auth='.rawurlencode($auth));
}
下加:
复制程式
} elseif($result == -2) {
showmessage('此用户正在浏览本站中,请先确保已经在其他电脑登出后,才再次登入本站,如果此讯息持续出现或怀疑用户被盗用,请与坛主联络', 'logging.php?action=login');
Discuz 7.0 修改 1./logging.php
找:
复制程式
if(isset($loginauth)) {
list($username, $password) = daddslashes(explode("\t", authcode($loginauth, 'DECODE')), 1);
}
2.下加:
复制程式
$usercheck = $db->result_first("SELECT COUNT(*) FROM {$tablepre}sessions WHERE username='$username'");
if($usercheck) {
showmessage('此用户正在浏览本站中,请先确保已经在其他电脑登出后,才再次登入本站,如果此讯息持续出现或怀疑用户被盗用,请与坛主联络');
}
----------------------------------------------------------------------
2009-9-27 20:05 前改的,请看以下更正
[quote]更正,(已改)
因为重复5次密码错误有利用logincheck,为免出错,整个插件改写了
请用Discuz7.x原档,重新修改