| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | <?phpclass 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(); 	}	}
 |