帝国论坛帝国网站管理系统交流区模板/标签/插件共享交流[原创]会员登录、退出日志插件 【本版专题贴子】  
 1/3     1 2 3 ›› ›|
主题:[原创]会员登录、退出日志插件 [加入收藏夹]   

aisouka
用户头衔:秀才

精华贴   :0
发贴数   :80
经验值   :421
注册时间:2015-10-14
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
[原创]会员登录、退出日志插件
7.0、7.2已经可以使用(7.5应该放到对应代码应该也可以用),更多判断限制可以自行添加上去,如果有不足之处,还请大神多多指点。
1、后台-系统设置-执行SQL语句,执行以下sql语句即可
CREATE TABLE IF NOT EXISTS `phome_member_log` (
  `id` int(11) NOT NULL auto_increment,
  `userid` int(11) NOT NULL,
  `username` varchar(255) NOT NULL,
  `logintime` int(10) NOT NULL,
  `loginip` varchar(32) NOT NULL,
  `status` smallint(1) NOT NULL,
  `password` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

2、在/e/class/connect.php函数表中加入函数
//用户登录日志(包含第一次注册时候的默认登录、成功登录、退出、账号不存在、密码错误、账号为空、密码为空、账号未通过审核),1成功登录、2退出网站、3注册登录、4账号密码错误、5账号不存在、6账号未通过审核、7账号或密码为空、8验证码错误
function insert_member_log($userid,$username,$logintime,$loginip,$status,$password){
        global $empire,$dbtbpre;
        $password=RepPostVar($password);
        if($status=='1' || $status=='3')
        {
                $password='';
        }else if($status=='4' || $status=='5'){
                $password=md5($password);
        }
        $userid=RepPostVar($userid);
        $username=RepPostVar($username);
        $logintime=RepPostVar($logintime);
        $loginip=RepPostVar($loginip);
        $status=RepPostVar($status);
        $password=RepPostVar($password);
        $sql=$empire->query("insert into {$dbtbpre}member_log(userid,username,logintime,loginip,status,password) values('$userid','$username','$logintime','$loginip','$status','$password');");
}
//用户登录次数错误限制
function member_login_error($username,$loginip){
        global $empire,$dbtbpre;
        $username=RepPostVar($username);
        $loginip=RepPostVar($loginip);
        $start_time=strtotime(date("Y-m-d H:i:s", strtotime("-10 minute")));
        $end_time=time();
        $username_login=$empire->fetch1("select count(*) as total from {$dbtbpre}member_log where username='$username' and status in (4,5,6,7) and logintime between '$start_time' and '$end_time' limit 1");
        $ip_login=$empire->fetch1("select count(*) as total from {$dbtbpre}member_log where loginip='$loginip' and status in (4,5,6,7) and logintime between '$start_time' and '$end_time' limit 1");
        $bankurl = 'http://www.baidu.com';
        if($username_login['total']>='5'){
            printerror2('亲,你在10分钟内账号或密码错误达到5次,请稍后再来尝试登录!',$bankurl);
        }
        if($ip_login['total']>='5'){
            printerror2('亲,你的ip('.$loginip.')在10分钟内输入账号或密码错误达到5次,请稍后再来尝试登录!',$bankurl);
        }
}

3、找到用户登录文件:/e/member/class/member_loginfun.php
1)在第6行加入代码:
        //获取当前时间和IP
        $loginip=egetip();
        $logintime=time();
2)在第22行用户账号或密码为空的判断中加入以下代码(加到第23行下面):
                //用户账号或密码为空在写入日志
                insert_member_log($userid,$username,$logintime,$loginip,'7',$password);
3)在第39行用户userid不存在的判断中加入以下代码(加到第40行下面):
                //用户账号不存在写入日志
                insert_member_log($r['userid'],$username,$logintime,$loginip,'5',$password);
4)在第45行用户密码错误的判断中加入以下代码(加到第46行下面):
                //用户账号密码错误写入日志
                insert_member_log($r['userid'],$username,$logintime,$loginip,'4',$password);
5)在第51行用户账号未通过审核的判断中加入以下代码(加到第52行下面):
                //用户账号未通过审核写入日志
                insert_member_log($r['userid'],$username,$logintime,$loginip,'6',$password);
6)在第95行用户成功登录后加入以下代码:
        //用户账号登录成功写入日志
        insert_member_log($r['userid'],$username,$logintime,$loginip,'1',$password);
7)在第132行用户退出登录加入以下代码:
        //用户账号退出网站写入日志
        //获取当前时间和IP
        $loginip=egetip();
        $logintime=time();
        $userid=getcvar('mluserid');//会员ID
        $username=getcvar('mlusername');//会员用户名
        insert_member_log($userid,$username,$logintime,$loginip,'2',$password);
至此登录文件修改完毕。

3、找到用户注册文件:/e/member/class/member_registerfun.php
1)在第194行后面用户账号注册成功即将转入会员中心前加入以下代码:
                //获取当前时间和IP
                $loginip=egetip();
                $logintime=time();
                //用户成功注册账号后的第一次登录写入日志
                insert_member_log($userid,$username,$logintime,$loginip,'3',$password);
                //登录成功转入会员中心

4、在/e/member/class/member_loginfun.php,加入以下判断但是不写入数据库。
1)加入一定时间内密码错误多少次无法登录判断。
在第38行后面加入以下代码:
        //10分钟内登录错误达到5次,请稍后再来登录
        member_login_error($username,$loginip);
2)异常IP登陆,常用IP登陆判断。

上传以下图片:


[该贴被修改 2 次,最后修改时间 2018-02-01 18:37:19 ]


页游代理:http://www.liehuowan.com/game_agent/ 九猴(9hou.com)网页游戏 邀你做代理,一起赚钱
2018-02-01 12:33:48 已设置保密 顶部 回复 引用 报告 编辑 删除

jwmm
用户头衔:进士

精华贴   :0
发贴数   :1093
经验值   :5249
注册时间:2012-01-20
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

谢谢分享,谢谢你还想着我们这些小白。




2018-02-01 14:14:59 已设置保密 顶部 回复 引用 报告 编辑 删除

ggqm520
用户头衔:进士

精华贴   :0
发贴数   :1120
经验值   :4889
注册时间:2010-08-15
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

谢谢你还想着我们这些小白



meiweny.com https://www.meiweny.cn美文苑文学网 danmeiwx.cn goodwenxue.com 签名广告位出售中!!!!!
2018-02-01 18:12:00 已设置保密 顶部 回复 引用 报告 编辑 删除

wohui99
用户头衔:进士

精华贴   :0
发贴数   :2263
经验值   :5805
注册时间:2010-04-21
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

这个可以有



帝国微信小程序接口90多个:http://www.guiboweb.com/wxapi.html.
帝国最好用的微信插件和小程序:http://www.guiboweb.com。

2018-02-01 21:15:21 已设置保密 顶部 回复 引用 报告 编辑 删除

时节
用户头衔:进士

精华贴   :0
发贴数   :1816
经验值   :4871
注册时间:2014-05-26
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

支持




2018-02-02 07:38:39 已设置保密 顶部 回复 引用 报告 编辑 删除

花心
用户头衔:探花

精华贴   :0
发贴数   :4374
经验值   :13671
注册时间:2008-11-01
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]

支持




2018-02-03 07:41:43 已设置保密 顶部 回复 引用 报告 编辑 删除

假如有来生
用户头衔:举人

精华贴   :0
发贴数   :291
经验值   :856
注册时间:2017-03-30
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

支持




2018-02-04 07:29:54 已设置保密 顶部 回复 引用 报告 编辑 删除

点到为止
用户头衔:探花

精华贴   :0
发贴数   :6537
经验值   :20508
注册时间:2008-01-07
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]

支持一下




2018-02-05 08:00:57 已设置保密 顶部 回复 引用 报告 编辑 删除

平头兄
用户头衔:进士

精华贴   :0
发贴数   :1611
经验值   :4381
注册时间:2008-11-20
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

支持




2018-02-06 08:09:45 已设置保密 顶部 回复 引用 报告 编辑 删除

feier
用户头衔:探花

精华贴   :0
发贴数   :6751
经验值   :21096
注册时间:2008-07-31
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 10 楼]

支持下




2018-02-07 07:57:28 已设置保密 顶部 回复 引用 报告 编辑 删除
 1/3     1 2 3 ›› ›|

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1