From 1a07280f79444d7bd3851cb8f09f2e87e363c993 Mon Sep 17 00:00:00 2001 From: Karson Date: Fri, 27 May 2022 15:30:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AF=AD=E8=A8=80=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=92=8C=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/command/Api/template/index.html | 2 +- application/common/behavior/Common.php | 17 ++++++++++++++--- application/common/controller/Api.php | 4 +++- application/common/controller/Backend.php | 7 +++++-- application/common/controller/Frontend.php | 9 ++++++--- application/config.php | 6 ++++-- 6 files changed, 33 insertions(+), 12 deletions(-) diff --git a/application/admin/command/Api/template/index.html b/application/admin/command/Api/template/index.html index 4608e506..02ee4f4a 100755 --- a/application/admin/command/Api/template/index.html +++ b/application/admin/command/Api/template/index.html @@ -1,5 +1,5 @@ - + diff --git a/application/common/behavior/Common.php b/application/common/behavior/Common.php index 9e39ea80..af9e1cfe 100644 --- a/application/common/behavior/Common.php +++ b/application/common/behavior/Common.php @@ -9,6 +9,12 @@ use think\Loader; class Common { + public function appInit() + { + $allowLangList = Config::get('allow_lang_list') ?? ['zh-cn', 'en']; + Lang::setAllowLangList($allowLangList); + } + public function appDispatch(&$dispatch) { $pathinfoArr = explode('/', request()->pathinfo()); @@ -56,8 +62,11 @@ class Common Config::set('app_trace', false); } // 切换多语言 - if (Config::get('lang_switch_on') && $request->get('lang')) { - \think\Cookie::set('think_var', $request->get('lang')); + if (Config::get('lang_switch_on')) { + $lang = $request->get('lang'); + if (preg_match("/^([a-zA-Z\-_]{2,10})\$/i", $lang)) { + \think\Cookie::set('think_var', $lang); + } } // Form别名 if (!class_exists('Form')) { @@ -68,8 +77,10 @@ class Common public function addonBegin(&$request) { // 加载插件语言包 + $lang = request()->langset(); + $lang = preg_match("/^([a-zA-Z\-_]{2,10})\$/i", $lang) ? $lang : 'zh-cn'; Lang::load([ - APP_PATH . 'common' . DS . 'lang' . DS . $request->langset() . DS . 'addon' . EXT, + APP_PATH . 'common' . DS . 'lang' . DS . $lang . DS . 'addon' . EXT, ]); $this->moduleInit($request); } diff --git a/application/common/controller/Api.php b/application/common/controller/Api.php index 87e9c6f7..0589a8c9 100644 --- a/application/common/controller/Api.php +++ b/application/common/controller/Api.php @@ -153,7 +153,9 @@ class Api protected function loadlang($name) { $name = Loader::parseName($name); - Lang::load(APP_PATH . $this->request->module() . '/lang/' . $this->request->langset() . '/' . str_replace('.', '/', $name) . '.php'); + $lang = $this->request->langset(); + $lang = preg_match("/^([a-zA-Z\-_]{2,10})\$/i", $lang) ? $lang : 'zh-cn'; + Lang::load(APP_PATH . $this->request->module() . '/lang/' . $lang . '/' . str_replace('.', '/', $name) . '.php'); } /** diff --git a/application/common/controller/Backend.php b/application/common/controller/Backend.php index b680b5a6..69f24e7c 100644 --- a/application/common/controller/Backend.php +++ b/application/common/controller/Backend.php @@ -190,7 +190,8 @@ class Backend extends Controller } // 语言检测 - $lang = strip_tags($this->request->langset()); + $lang = $this->request->langset(); + $lang = preg_match("/^([a-zA-Z\-_]{2,10})\$/i", $lang) ? $lang : 'zh-cn'; $site = Config::get("site"); @@ -236,7 +237,9 @@ class Backend extends Controller protected function loadlang($name) { $name = Loader::parseName($name); - Lang::load(APP_PATH . $this->request->module() . '/lang/' . $this->request->langset() . '/' . str_replace('.', '/', $name) . '.php'); + $lang = $this->request->langset(); + $lang = preg_match("/^([a-zA-Z\-_]{2,10})\$/i", $lang) ? $lang : 'zh-cn'; + Lang::load(APP_PATH . $this->request->module() . '/lang/' . $lang . '/' . str_replace('.', '/', $name) . '.php'); } /** diff --git a/application/common/controller/Frontend.php b/application/common/controller/Frontend.php index 9464e895..1b7d3c71 100644 --- a/application/common/controller/Frontend.php +++ b/application/common/controller/Frontend.php @@ -88,7 +88,8 @@ class Frontend extends Controller $this->view->assign('user', $this->auth->getUser()); // 语言检测 - $lang = strip_tags($this->request->langset()); + $lang = $this->request->langset(); + $lang = preg_match("/^([a-zA-Z\-_]{2,10})\$/i", $lang) ? $lang : 'zh-cn'; $site = Config::get("site"); @@ -126,8 +127,10 @@ class Frontend extends Controller */ protected function loadlang($name) { - $name = Loader::parseName($name); - Lang::load(APP_PATH . $this->request->module() . '/lang/' . $this->request->langset() . '/' . str_replace('.', '/', $name) . '.php'); + $name = Loader::parseName($name); + $lang = $this->request->langset(); + $lang = preg_match("/^([a-zA-Z\-_]{2,10})\$/i", $lang) ? $lang : 'zh-cn'; + Lang::load(APP_PATH . $this->request->module() . '/lang/' . $lang . '/' . str_replace('.', '/', $name) . '.php'); } /** diff --git a/application/config.php b/application/config.php index 16bebb5f..0d29cfb3 100755 --- a/application/config.php +++ b/application/config.php @@ -47,6 +47,8 @@ return [ 'default_filter' => '', // 默认语言 'default_lang' => 'zh-cn', + // 默认语言 + 'allow_lang_list' => ['zh-cn', 'en'], // 应用类库后缀 'class_suffix' => false, // 控制器类后缀 @@ -264,7 +266,7 @@ return [ //会员注册验证码类型email/mobile/wechat/text/false 'user_register_captcha' => 'text', //登录验证码 - 'login_captcha' => true, + 'login_captcha' => false, //登录失败超过10次则1天后重试 'login_failure_retry' => true, //是否同一账号同一时间只能在一个地方登录 @@ -294,7 +296,7 @@ return [ //允许跨域的域名,多个以,分隔 'cors_request_domain' => 'localhost,127.0.0.1', //版本号 - 'version' => '1.3.3.20220121', + 'version' => '1.3.4.20220527', //API接口地址 'api_url' => 'https://api.fastadmin.net', ],