app = $app; $this->request = $this->app->request; $accIp = getAccessIP(); $list = Blacklist::where(['ip' => $accIp])->select(); if (sizeof($list) > 0) { $html = <<

:(

IP黑名单不允许访问

php; die($html); } //删除安装文件 $an = root_path() . "an.php"; if (is_file($an)) { unlink($an); } // 控制器初始化 $this->initialize(); } // 初始化 protected function initialize() { $staticPath = config("adminconfig.static_path"); View::assign("staticPath", $staticPath); //全局后来路径变量 $adminP = config("adminconfig.admin_path"); View::assign("adminPath", $adminP); //全局后来路径变量 $this->adminPath = $adminP; $this->domain = $this->request->domain() . "/"; View::assign('domain', $this->domain); View::assign('nowtime', "到现在"); $this->domainNo = $this->request->subDomain() . "." . $this->request->rootDomain(); View::assign('domainNo', $this->domainNo); $this->lang = xn_cfg("base.lang"); } //获取自己当前语言 protected function getMyLang() { $my_lang = Session::get('my_lang'); if (empty($my_lang)) { $my_lang = $this->lang; Session::set("my_lang", $my_lang); } return $my_lang; } //语言 protected function lang() { $list = []; $curlang = null; try { $list = Db::name('lang')->field("lang,name")->where([['status', '=', 1]])->cache(true)->select()->toArray(); } catch (\Exception $e) { $curlang = ['name' => "", 'lang' => xn_cfg("base.lang")]; } $lang = $this->getMyLang(); $otherLangs = []; foreach ($list as $vo) { if ($vo['lang'] == $lang) { $curlang = $vo; } else { $otherLangs[] = $vo; } } View::assign('otherLangs', $otherLangs); View::assign('langs', $list); View::assign('curlang', $curlang); } //切换语言 public function handoverLang() { $lang = $this->request->param('lang'); $lang = trim($lang); if (empty($lang)) { $this->error("切换失败,缺少参数"); } Session::set("my_lang", $lang); $isT = TableUtil::check_table("fox_lang"); if ($isT) { $fLang = Db::name('lang')->field("lang,name,status")->where([['lang', '=', $lang]])->find(); if ($fLang) { if ($fLang['status'] == 1) { $this->success("切换成功", "", $fLang); } else { $this->error("切换失败"); } } } $this->success("切换成功"); } // 验证数据 protected function validate(array $data, $validate, array $message = [], bool $batch = false) { if (is_array($validate)) { $v = new Validate(); $v->rule($validate); } else { if (strpos($validate, '.')) { // 支持场景 [$validate, $scene] = explode('.', $validate); } $class = false !== strpos($validate, '\\') ? $validate : $this->app->parseClass('validate', $validate); $v = new $class(); if (!empty($scene)) { $v->scene($scene); } } $v->message($message); // 是否批量验证 if ($batch || $this->batchValidate) { $v->batch(true); } return $v->failException(true)->check($data); } /** * 操作成功跳转的快捷方法 * @param mixed $msg 提示信息 * @param string $url 跳转的URL地址 * @param mixed $data 返回的数据 * @param integer $wait 跳转等待时间 * @param array $header 发送的Header信息 */ protected function success($msg = '', string $url = null, $data = '', int $wait = 1, array $header = []) { if (is_null($url) && isset($_SERVER["HTTP_REFERER"])) { //$url = $_SERVER["HTTP_REFERER"]; $url = ''; } elseif ($url) { $url = (strpos($url, '://') || 0 === strpos($url, '/')) ? $url : app('route')->buildUrl($url); } $result = [ 'code' => 1, 'msg' => $msg, 'data' => $data, 'url' => $url, 'wait' => $wait, ]; $type = $this->getResponseType(); if ($type == 'html') { $response = view(config('app.dispatch_success_tmpl'), $result); } else if ($type == 'json') { $response = json($result); } throw new HttpResponseException($response); } /** * 操作错误跳转的快捷方法 * @param mixed $msg 提示信息 * @param string $url 跳转的URL地址 * @param mixed $data 返回的数据 * @param integer $wait 跳转等待时间 * @param array $header 发送的Header信息 */ protected function error($msg = '', string $url = null, $data = '', int $wait = 3, array $header = []) { if (is_null($url)) { $url = $this->request->isAjax() ? '' : 'javascript:history.back(-1);'; } elseif ($url) { $url = (strpos($url, '://') || 0 === strpos($url, '/')) ? $url : $this->app->route->buildUrl($url); } $result = [ 'code' => 0, 'msg' => $msg, 'data' => $data, 'url' => $url, 'wait' => $wait, ]; $type = $this->getResponseType(); if ($type == 'html') { $response = view(config('app.dispatch_success_tmpl'), $result); } else if ($type == 'json') { $response = json($result); } throw new HttpResponseException($response); } /** * URL重定向 自带重定向无效 * @param string $url 跳转的URL表达式 * @param array|integer $params 其它URL参数 * @param integer $code http code * @param array $with 隐式传参 */ protected function redirect($url, $params = [], $code = 302, $with = []) { $response = Response::create($url, 'redirect'); if (is_integer($params)) { $code = $params; $params = []; } $response->code($code)->with($params); throw new HttpResponseException($response); } // 获取当前的response 输出类型 protected function getResponseType() { return $this->request->isJson() || $this->request->isAjax() ? 'json' : 'html'; } }