1 changed files with 0 additions and 170 deletions
@ -1,170 +0,0 @@ |
|||||
<?php |
|
||||
include_once(dirname(__FILE__)."/library/publicBase.php"); |
|
||||
|
|
||||
class run extends publicBase { |
|
||||
public $control_name; |
|
||||
public $control_func; |
|
||||
|
|
||||
public function __construct() { |
|
||||
$this->beforecheckpara(); |
|
||||
$this->checkpara(); |
|
||||
$this->aftercheckpara(); |
|
||||
$this->action(); |
|
||||
$this->display(); |
|
||||
} |
|
||||
|
|
||||
private function beforecheckpara() { |
|
||||
} |
|
||||
|
|
||||
private function checkpara() { |
|
||||
$argv = trim(trim($_GET['argv']),'/'); |
|
||||
if(empty($argv)) { |
|
||||
$this->control_name = 'weibo'; |
|
||||
$this->control_func = 'home'; |
|
||||
} else { |
|
||||
$array = explode('/', $argv); |
|
||||
$this->control_name = $array[0]; |
|
||||
$this->control_func = !isset($array[1]) || $array[1]=='' ? 'home' : $array[1]; |
|
||||
|
|
||||
if(preg_match('/^(login|loginout).*/', $this->control_name)){ |
|
||||
$this->control_name = 'index'; |
|
||||
$this->control_func = $array[0]; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
// 还原GET |
|
||||
if(!empty($array)) { |
|
||||
unset($_GET['argv']); |
|
||||
unset($array[0]); |
|
||||
unset($array[1]); |
|
||||
|
|
||||
$count = count($array); |
|
||||
for($i=1;$i<=$count/2;$i++) { |
|
||||
$_GET[$array[$i*2]] = $array[$i*2+1]; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
// 如果URI带有常规传参形式,并入$_GET |
|
||||
$pos = strpos($_SERVER['REQUEST_URI'], '?'); |
|
||||
if($pos!==false) { |
|
||||
$new_uri = substr($_SERVER['REQUEST_URI'], $pos+1); |
|
||||
$new_uri_arr = explode("&", $new_uri); |
|
||||
foreach($new_uri_arr as $v) { |
|
||||
$new_para = explode("=", $v); |
|
||||
$_GET[$new_para[0]] = $new_para[1]; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
private function aftercheckpara() { |
|
||||
session_start(); |
|
||||
session_write_close(); |
|
||||
|
|
||||
//登陆检查 |
|
||||
$needlogin = true; |
|
||||
if ($this->control_name == 'index') { |
|
||||
if (preg_match('/^(ajax_login).*/', $this->control_func)) { |
|
||||
$needlogin = false; |
|
||||
} |
|
||||
}elseif($this->control_name == 'callback'){ |
|
||||
$needlogin = false; |
|
||||
} |
|
||||
|
|
||||
if($_POST['str'] == FREE_LOGIN_STR){ |
|
||||
$needlogin = false; |
|
||||
|
|
||||
if($this->control_name !== 'weibo' || $this->control_func == 'home') $this->ajax_json(false, '暂无权限'); |
|
||||
} |
|
||||
|
|
||||
if ($needlogin) { |
|
||||
$data = $this->checkAuth(); |
|
||||
if (!$data) $this->ajax_json(false, $this->getError()); |
|
||||
|
|
||||
$uobj = new mUser(); |
|
||||
$user_info = $uobj->getAdminUserByOpenid($data['openid']); |
|
||||
if(empty($user_info) || $user_info['status'] != 1) $this->ajax_json(false, '登陆失败'); |
|
||||
|
|
||||
if($this->control_name == 'weibo' && $user_info['aid'] != 1 && $user_info['is_super_admin'] != 1) $this->ajax_json(false, '暂无权限'); |
|
||||
|
|
||||
$this->view['_user_info'] = $this->para['_user_info'] = $user_info; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
private function action() { |
|
||||
$control_func = empty($this->control_func) ? 'home' : $this->control_func; |
|
||||
|
|
||||
// 判断控制层文件是否存在 |
|
||||
$control_path = dirname(__FILE__).'/control/'.$this->control_name.'.php'; |
|
||||
if(!file_exists($control_path)) { |
|
||||
die('/'.$this->control_name.'.php not exist.'); |
|
||||
} |
|
||||
include_once ($control_path); |
|
||||
|
|
||||
// 判断控制层方法是否存在 |
|
||||
$obj = new $this->control_name; |
|
||||
##如下根据情况传递公共变量值################## |
|
||||
if (is_array($this->para)) { |
|
||||
foreach ($this->para as $k=>$v) { |
|
||||
$func = 'set' . $k; |
|
||||
$obj->$func($v); |
|
||||
} |
|
||||
} |
|
||||
##如上根据情况传递公共变量值################## |
|
||||
if (method_exists($obj, $control_func)) { |
|
||||
$res = $obj->$control_func(); |
|
||||
} else { |
|
||||
die('method '.$this->control_func.' not exist.'); |
|
||||
} |
|
||||
|
|
||||
if($obj->getViewFormat()=='json' && $res===false) { |
|
||||
echo urldecode($obj->getError()); |
|
||||
exit; |
|
||||
} |
|
||||
|
|
||||
$this->view = array_merge($this->view, $obj->getView()); |
|
||||
$this->viewFormat = $obj->getViewFormat(); |
|
||||
$this->viewTpl = $obj->getViewTpl(); |
|
||||
} |
|
||||
|
|
||||
private function display() { |
|
||||
if($this->viewFormat=='json') { |
|
||||
$display = new DisplayJson(); |
|
||||
} elseif($this->viewFormat=='string') { |
|
||||
$display = new DisplayNone(); |
|
||||
} else { |
|
||||
$tpl_path = $this->viewTpl=='' ? $this->control_name.'/'.$this->control_func.'.html' : $this->viewTpl; |
|
||||
if(!file_exists(dirname(__FILE__) . '/view/templates/'.$tpl_path)) { // 判断模板是否存在 |
|
||||
die("{$tpl_path} not exist."); |
|
||||
} |
|
||||
$display = new DisplaySmarty($tpl_path); |
|
||||
} |
|
||||
|
|
||||
$display->setView($this->view); |
|
||||
$display->execute(); |
|
||||
} |
|
||||
|
|
||||
private function checkAuth() { |
|
||||
$auth = $_SERVER['HTTP_AUTHORIZATION']; |
|
||||
if (empty($auth)) { |
|
||||
$this->setError('token为空'); |
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
$jwtobj = new mJwt(); |
|
||||
$data = $jwtobj->getJwtDecode($auth); |
|
||||
if (!$data) { |
|
||||
$this->setError($jwtobj->getError()); |
|
||||
return false; |
|
||||
} |
|
||||
if (time() > $data['exp']) { |
|
||||
$this->setError('token过期'); |
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
return $data; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
new run(); |
|
||||
|
|
||||
|
|
Loading…
Reference in new issue