1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?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));
- //验证用户,获取用户信息
- $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();
- }
-
- }
|