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/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/www.jkmold.com/phpcms/modules/member/classes/foreground.class.php
<?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();

 	}

	

}