Server : nginx/1.22.1 System : Linux iZwz9daxib3w3i063fw434Z 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 User : www ( 1000) PHP Version : 5.6.40 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv Directory : /www/wwwroot/www.jkmold.com/phpcms/modules/member/classes/ |
<?php class foreground { public $db, $memberinfo; private $_member_modelinfo; public function __construct() { self::check_ip(); $this->db = pc_base::load_model('member_model'); //ajax验证信息不需要登录 if(substr(ROUTE_A, 0, 7) != 'public_') { self::check_member(); } } /** * 判断用户是否已经登陆 */ final public function check_member() { $phpcms_auth = param::get_cookie('auth'); if(ROUTE_M =='member' && ROUTE_C =='index' && in_array(ROUTE_A, array('login', 'register', 'mini','send_newmail'))) { if ($phpcms_auth && ROUTE_A != 'mini') { showmessage(L('login_success', '', 'member'), 'index.php?m=member&c=index'); } else { return true; } } else { //判断是否存在auth cookie if ($phpcms_auth) { $auth_key = $auth_key = get_auth_key('login'); list($userid, $password) = explode("\t", sys_auth($phpcms_auth, 'DECODE', $auth_key)); $userid = intval($userid); //验证用户,获取用户信息 $this->memberinfo = $this->db->get_one(array('userid'=>$userid)); if($this->memberinfo['islock']) exit('<h1>Bad Request!</h1>'); //获取用户模型信息 $this->db->set_model($this->memberinfo['modelid']); $this->_member_modelinfo = $this->db->get_one(array('userid'=>$userid)); $this->_member_modelinfo = $this->_member_modelinfo ? $this->_member_modelinfo : array(); $this->db->set_model(); if(is_array($this->memberinfo)) { $this->memberinfo = array_merge($this->memberinfo, $this->_member_modelinfo); } if($this->memberinfo && $this->memberinfo['password'] === $password) { if (!defined('SITEID')) { define('SITEID', $this->memberinfo['siteid']); } if($this->memberinfo['groupid'] == 1) { param::set_cookie('auth', ''); param::set_cookie('_userid', ''); param::set_cookie('_username', ''); param::set_cookie('_groupid', ''); showmessage(L('userid_banned_by_administrator', '', 'member'), 'index.php?m=member&c=index&a=login'); } elseif($this->memberinfo['groupid'] == 7) { param::set_cookie('auth', ''); param::set_cookie('_userid', ''); param::set_cookie('_groupid', ''); //设置当前登录待验证账号COOKIE,为重发邮件所用 param::set_cookie('_regusername', $this->memberinfo['username']); param::set_cookie('_reguserid', $this->memberinfo['userid']); param::set_cookie('_reguseruid', $this->memberinfo['phpssouid']); param::set_cookie('email', $this->memberinfo['email']); showmessage(L('need_emial_authentication', '', 'member'), 'index.php?m=member&c=index&a=register&t=2'); } } else { param::set_cookie('auth', ''); param::set_cookie('_userid', ''); param::set_cookie('_username', ''); param::set_cookie('_groupid', ''); } unset($userid, $password, $phpcms_auth, $auth_key); } else { $forward= isset($_GET['forward']) ? urlencode($_GET['forward']) : urlencode(get_url()); showmessage(L('please_login', '', 'member'), 'index.php?m=member&c=index&a=login&forward='.$forward); } } } /** * * IP禁止判断 ... */ final private function check_ip(){ $this->ipbanned = pc_base::load_model('ipbanned_model'); $this->ipbanned->check_ip(); } }