| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 | <?php/** * 核心控制 * @author cp */class BaseController {		public $userinfo;		function __construct() {			}		/**	 * 后台登录	 */	function admin_init(){	//是否已经登录纵横		$rs=array();		 		if (isset ( $_COOKIE ['auth_main'] )) {						//$userinfo = authcode ( $_COOKIE ['auth'] );						$userinfo=authcode ($_COOKIE ['auth_main']);						//			//			if($login_user!=$userinfo){//				header ( 'Content-Type:text/html;charset=utf-8' );//				@header ( "Location: " . WEB_SITE . "/messager?content=请重新纵横&url=/login" );//			}			//			require_once (SITE_PATH . '/protected/plugin/client.php');//		//			$client = new client ( ZHSSO );//			//			$userinfo = authcode ( $_COOKIE ['auth_main'] );//			//			$sso_info = $client->zhsso_getUserbyName ( $userinfo );//		//			$sso_info=explode("\r",$sso_info);//			//			$ts = json_decode ( $sso_info['1'], true );//						$this->userinfo=$this->_get_userinfo_by_username ( $userinfo );					}else{			Doo::loadCore ( 'uri/DooUriRouter' );			$router = new DooUriRouter ();			$routeRs = $router->execute ( Doo::app ()->route, Doo::conf ()->SUBFOLDER );						if($routeRs['1']=="login"||$routeRs['1']=="do_login"){							}else{				setcookie ( "auth_main", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE );die;			}		}				//$this->userinfo = array ('uid' => '2','groupid'=>'1', 'username' => "kakachen", "password" => "123456", "credit3","email" => "529868749@qq.com", "avatar" => "/global/img/avatarNormal.png" );						if (empty ( $this->userinfo )) {			//跳转前台登录			define ( "MASTER_ID", 0 );						//header ( 'Content-Type:text/html;charset=utf-8' );			//@header ( "Location: " . WEB_SITE . "/messager?content=请登录纵横&url=/login" );						} else {			$message_count = $this->_sys_message_count ( $this->userinfo ['uid'] );						define ( "MASTER_ID", $this->userinfo ['uid'] );						define ( 'MEMBER_NAME', $this->userinfo ['username'] );						define ( 'MEMBER_AVATAR', $this->userinfo ['avatar'] );						define ( "MESSAGE_COUNT", $message_count ['count'] );						define('EMAIL',$this->userinfo['email']);						define("CREDIT3", 0);							$group=$this->_get_group_by_id($this->userinfo ['groupid']);						//有BUG 应该判断用户组			if ($group['grouptype'] == 1 ) {								include SITE_PATH . 'protected/config/admin_menu.conf.php';								$rs['menu']= $menu;								$rs['userinfo']=$this->userinfo;								//判断是否已经登录--读取sessiong				return $rs;			} else {				setcookie ( "auth_main", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE );				//无权限进入后台				header ( 'Content-Type:text/html;charset=utf-8' );				@header ( "Location: " . WEB_SITE . "/messager?content=无权进入后台&url=/" );			}		}	}		/**	 * 持续认证	 */	function init(){	//初始化信息		Doo::loadCore ( 'uri/DooUriRouter' );		$router = new DooUriRouter ();		$routeRs = $router->execute ( Doo::app ()->route, Doo::conf ()->SUBFOLDER );				//是否有登录信息		if (isset ( $_COOKIE ['auth'] )) {			require_once (SITE_PATH . '/protected/plugin/client.php');					$client = new client ( ZHSSO );						//还需要加入权限			$userinfo = authcode ( $_COOKIE ['auth'] );						$sid = $_COOKIE ['sid'];						$sso_info = $client->zhsso_getUserbyName ( $userinfo );					$sso_info=explode("\r",$sso_info);						$ts = json_decode ( $sso_info['0'], true );			$this->userinfo = $this->_get_userinfo_by_username ( $userinfo );						$this->userinfo['credit3']=$ts[0]['bank'];						$this->userinfo['email']=$ts[0]['useremail'];						$route_group="GENERAL_USER";			if(!empty($this->userinfo)){				if($this->userinfo['groupid']==99)					$route_group="VIP_USER";			}						//持续状态认证			if (! $this->_init_login ( $routeRs, $route_group )) {				if($routeRs['1']=="show_advisory"){					header ( 'Content-Type:text/html;charset=utf-8' );					header ( "Location: " . WEB_SITE . "/show_tip2" );				}else{										header ( 'Content-Type:text/html;charset=utf-8' );					@header ( "Location: " . WEB_SITE . "/messager?content=权限不足,请联系管理员&url=/" );				}			}elseif (empty ( $this->userinfo )){								setcookie ( "auth", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE );								setcookie ( "sid", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE );								setcookie ( "tuid", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE );								header ( 'Content-Type:text/html;charset=utf-8' );				@header ( "Location: " . WEB_SITE . "/messager?content=请确认已经登录后操作&url=/login" );			}						//持续检测登录异常状态			if (! $this->_login_authenticate ( $sid )) {				Doo::loadModel ( 'MessageDao' );								$messagedao = new MessageDao ();								$subject = "你的账号发生异常登录";								$content = "您的账号发生异常登录,请检查账号安全。";								$messagedao->send_message ( ADMIN_NAME, 0, $this->userinfo ['uid'], $subject, $content,2 );								setcookie ( "auth", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE );								setcookie ( "sid", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE );								setcookie ( "tuid", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE );								header ( 'Content-Type:text/html;charset=utf-8' );				@header ( "Location: " . WEB_SITE . "/messager?content=登录发生异常,请重新登陆&url=/login" );			}						$message_count = $this->_sys_message_count ( $this->userinfo ['uid'] );						if($message_count['count']>10)				$message_count['count']="10+";						$tuid = $_COOKIE ['tuid'];						//$avatar = $client->ps_getavatar ( $tuid );						$avatar=json_decode($this->userinfo['avatar'],true);			//print_r($avatar);echo $this->userinfo['avatar'];			if (empty ( $avatar )){				$avatar[30] = DEF_AVATAR;$avatar[45] = DEF_AVATAR;$avatar[90] = DEF_AVATAR;$avatar[180] = DEF_AVATAR;			}						define ( "MASTER_ID", $this->userinfo ['uid'] );			define ( 'MEMBER_NAME', $this->userinfo ['username'] );			define ( 'CREDIT3', $this->userinfo['credit3'] );			define ( 'SSO_UID', $ts[0]['id'] );			define('EMAIL',$this->userinfo['email']);			define ( 'MEMBER_AVATAR_30', $avatar[30] );			define ( 'MEMBER_AVATAR_45', $avatar[45] );			define ( 'MEMBER_AVATAR_90', $avatar[90] );			define ( 'MEMBER_AVATAR_180', $avatar[180] );			define ( "MESSAGE_COUNT", $message_count ['count'] );		} else {			//未登陆不容许浏览			if (! $this->_init_login ( $routeRs, "VISITOR_USER" )) {								header ( 'Content-Type:text/html;charset=utf-8' );				@header ( "Location: " . WEB_SITE . "/messager?content=请确认已经登录后操作&url=/login" );								return false;			}		}				$this->userinfo['$routeRs']=$routeRs;				return $this->userinfo;	}		/**	 * 持续认证	 */	private function _login_authenticate($sid = "") {		Doo::loadModel ( 'SessionDao' );		Doo::loadModel ( 'UserlogDao' );				$sessiondao = new SessionDao ();		$Userlogdao = new UserlogDao ();				$rs = $sessiondao->get_seesion ( $sid );				if (empty ( $rs ))			return false;				$time = get_date ();				//会话过期-删除		if ($time > $rs ['lifetime']) {			$sessiondao->sid = $sid;						$this->db ()->delete ( $sessiondao->sid );						setcookie ( "auth", "", time () + (3600 * 24), "/", COOKIE_WEB_SITE );						setcookie ( "sid", "", time () + (3600 * 24), "/", COOKIE_WEB_SITE );						return false;		}				//登录ip出现异常		$ip = client_ip ();				if ($ip != $rs ['ip']) {			$action = $Userlogdao->set_USER_LOGINIP_EXCEPTIONAL ( $ip );						$Userlogdao->set_userlog ( $rs ['uid'], $rs ['username'], $action, $ip );						return true;		}				return true;	}		/**	 * 获取用户信息	 */	private function _get_userinfo_by_username($username = "") {		Doo::loadModel ( 'UserDao' );				$userdao = new UserDao ();				$rs = $userdao->get_users_by_name ( $username );				return $rs;	}		/**	 * 获取用户信息	 */	public function _get_group_by_id($id = "") {		Doo::loadModel ( 'GroupDao' );				$groupDao = new GroupDao ();				$rs = $groupDao->get_group_by_id($id) ;				return $rs;	}		/**	 * 获取系统消息条数	 */	private function _sys_message_count($uid = 0) {		Doo::loadModel ( 'MessageDao' );				$messagedao = new MessageDao ();				$rs = $messagedao->get_message_count_by_touid ( $uid );				return $rs;	}		/**	 * 用户登录统一判断-容许未登陆可以预览的页面	 */	private function _init_login($routeRs = array(), $user_type = "VISITOR_USER") {				$rt = false;				//用户角色		if ($user_type == "VISITOR_USER") {						if (in_array ( $routeRs [1], DOO::conf ()->VISITOR_USER ))				$rt = true;		} elseif ($user_type == "GENERAL_USER") {						if (in_array ( $routeRs [1], DOO::conf ()->GENERAL_USER )){				$rt = true;			}		}elseif ($user_type == "VIP_USER"){						if (in_array ( $routeRs [1], DOO::conf ()->VIP_USER )){				$rt = true;			}		}				return $rt;	}	}?>
 |