博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1.php代码块
阅读量:7088 次
发布时间: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/

你可能感兴趣的文章
solr4.5分组查询、统计功能介绍
查看>>
Tomcat Server.xml详解
查看>>
CSS媒体查询(@media)
查看>>
如何提取一个转录本的3'UTR区域的序列
查看>>
得到当前日期前一天的零时零分零秒及当前日的零时零分零秒
查看>>
内存堆与栈的区别
查看>>
NHibernate初学者指南(12):日志
查看>>
30 个设计新颖的网站风格展示
查看>>
概念——统一资源定位符(Uniform / Universal Resource Locator,URL)
查看>>
Apache HttpComponents 获取Cookie
查看>>
彻底理解jdbc为什么用反射创建驱动程序对象
查看>>
Oracle内存管理(之五)
查看>>
[nio]dawn的基本概念
查看>>
【数据库摘要】6_Sql_Inner_Join
查看>>
交叉熵代价函数(损失函数)及其求导推导
查看>>
Android UI开源框架
查看>>
Java 构造时成员初始化的陷阱
查看>>
CentOS7.1 Liberty云平台之环境准备(2)
查看>>
js正则表达式test方法、exec方法与字符串search方法区别
查看>>
4.终端
查看>>