博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1.php代码块
阅读量:7087 次
发布时间:2019-06-28

本文共 5279 字,大约阅读时间需要 17 分钟。

一、登录

用户名:
密码:
验证码:
单击更换验证码
View Code
function login() {        if(isset($_GET['dosubmit'])) {                        //不为口令卡验证            if (!isset($_GET['card'])) {                $username = isset($_POST['username']) ? trim($_POST['username']) : showmessage(L('nameerror'),HTTP_REFERER);                $code = isset($_POST['code']) && trim($_POST['code']) ? trim($_POST['code']) : showmessage(L('input_code'), HTTP_REFERER);                if ($_SESSION['code'] != strtolower($code)) {                    $_SESSION['code'] = '';                    showmessage(L('code_error'), HTTP_REFERER);                }            } else { //口令卡验证                if (!isset($_SESSION['card_verif']) || $_SESSION['card_verif'] != 1) {                    showmessage(L('your_password_card_is_not_validate'), '?m=admin&c=index&a=public_card');                }                $username = $_SESSION['card_username'] ? $_SESSION['card_username'] :  showmessage(L('nameerror'),HTTP_REFERER);            }                        //密码错误剩余重试次数            $this->times_db = pc_base::load_model('times_model');            $rtime = $this->times_db->get_one(array('username'=>$username,'isadmin'=>1));            $maxloginfailedtimes = getcache('common','commons');            $maxloginfailedtimes = (int)$maxloginfailedtimes['maxloginfailedtimes'];            if($rtime['times'] >= $maxloginfailedtimes) {                $minute = 60-floor((SYS_TIME-$rtime['logintime'])/60);                if($minute>0) showmessage(L('wait_1_hour',array('minute'=>$minute)));            }            //查询帐号            $r = $this->db->get_one(array('username'=>$username));            if(!$r) showmessage(L('user_not_exist'),'?m=admin&c=index&a=login');            $password = md5(md5(trim((!isset($_GET['card']) ? $_POST['password'] : $_SESSION['card_password']))).$r['encrypt']);                        if($r['password'] != $password) {                $ip = ip();                if($rtime && $rtime['times'] < $maxloginfailedtimes) {                    $times = $maxloginfailedtimes-intval($rtime['times']);                    $this->times_db->update(array('ip'=>$ip,'isadmin'=>1,'times'=>'+=1'),array('username'=>$username));                } else {                    $this->times_db->delete(array('username'=>$username,'isadmin'=>1));                    $this->times_db->insert(array('username'=>$username,'ip'=>$ip,'isadmin'=>1,'logintime'=>SYS_TIME,'times'=>1));                    $times = $maxloginfailedtimes;                }                showmessage(L('password_error',array('times'=>$times)),'?m=admin&c=index&a=login',3000);            }            $this->times_db->delete(array('username'=>$username));                        //查看是否使用口令卡            if (!isset($_GET['card']) && $r['card'] && pc_base::load_config('system', 'safe_card') == 1) {                $_SESSION['card_username'] = $username;                $_SESSION['card_password'] = $_POST['password'];                header("location:?m=admin&c=index&a=public_card");                exit;            } elseif (isset($_GET['card']) && pc_base::load_config('system', 'safe_card') == 1 && $r['card']) {
//对口令卡进行验证 isset($_SESSION['card_username']) ? $_SESSION['card_username'] = '' : ''; isset($_SESSION['card_password']) ? $_SESSION['card_password'] = '' : ''; isset($_SESSION['card_password']) ? $_SESSION['card_verif'] = '' : ''; } $this->db->update(array('lastloginip'=>ip(),'lastlogintime'=>SYS_TIME),array('userid'=>$r['userid'])); $_SESSION['userid'] = $r['userid']; $_SESSION['roleid'] = $r['roleid']; $_SESSION['pc_hash'] = random(6,'abcdefghigklmnopqrstuvwxwyABCDEFGHIGKLMNOPQRSTUVWXWY0123456789'); $_SESSION['lock_screen'] = 0; $default_siteid = self::return_siteid(); $cookie_time = SYS_TIME+86400*30; if(!$r['lang']) $r['lang'] = 'zh-cn'; param::set_cookie('admin_username',$username,$cookie_time); param::set_cookie('siteid', $default_siteid,$cookie_time); param::set_cookie('userid', $r['userid'],$cookie_time); param::set_cookie('admin_email', $r['email'],$cookie_time); param::set_cookie('sys_lang', $r['lang'],$cookie_time); showmessage(L('login_success'),'?m=admin&c=index'); //同步登陆vms,先检查是否启用了vms $video_setting = getcache('video', 'video'); if ($video_setting['sn'] && $video_setting['skey']) { $vmsapi = pc_base::load_app_class('ku6api', 'video'); $vmsapi->member_login_vms(); } } else { pc_base::load_sys_class('form', '', 0); include $this->admin_tpl('login'); } }
View Code

二、登出

function public_logout() {        $_SESSION['userid'] = 0;        $_SESSION['roleid'] = 0;        param::set_cookie('admin_username','');        param::set_cookie('userid',0);                //退出phpsso        $phpsso_api_url = pc_base::load_config('system', 'phpsso_api_url');        $phpsso_logout = '';                showmessage(L('logout_success').$phpsso_logout,'?m=admin&c=index&a=login');    }
View Code

稍等

转载地址:http://plyql.baihongyu.com/

你可能感兴趣的文章
hrtf 旋转音效matlab实现
查看>>
__attribute__
查看>>
【Android每日一讲】2012.11.06 Android变脸 - 主题(Theme)实现
查看>>
redis 系列12 哈希对象
查看>>
QTP使用心得
查看>>
js/jq ajax+数组。个人整理
查看>>
mac 下批量转换文件类型
查看>>
何为DOM对象
查看>>
linux的yum仓库配置
查看>>
XSUPERSMS COME ON
查看>>
[JS2] JS是弱类型
查看>>
企业搜索引擎开发之连接器connector(二十四)
查看>>
数学图形(1.9)悬链线
查看>>
有上下界的网络流问题
查看>>
AspectJ获取方法注解的信息
查看>>
获取泛型的class 反射
查看>>
input 获取当前id,name
查看>>
linux zip 命令详解
查看>>
HDU 4902 Nice boat(线段树)
查看>>
Codeforces Round #114 (Div. 1) E. Wizards and Bets 高斯消元
查看>>