核心框架为ThinkPHP5.0版本的:
在think\App类的module方法的获取控制器的代码后面加上
if (!preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) { throw new HttpException(404, 'controller not exists:' . $controller); }
最终效果
// 获取控制器名 $controller = strip_tags($result[1] ?: $config['default_controller']); if (!preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) { throw new HttpException(404, 'controller not exists:' . $controller); } $controller = $convert ? strtolower($controller) : $controller; // 获取操作名 $actionName = strip_tags($result[2] ?: $config['default_action']);
核心框架为ThinkPHP5.1版本的:
在think\route\dispatch\Url类的parseUrl方法,解析控制器后加上
if ($controller && !preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) { throw new HttpException(404, 'controller not exists:' . $controller); }
最终效果
if ($this->param['auto_search']) { $controller = $this->autoFindController($module, $path); } else { // 解析控制器 $controller = !empty($path) ? array_shift($path) : null; } if ($controller && !preg_match('/^[A-Za-z][\w|\.]*$/', $controller)) { throw new HttpException(404, 'controller not exists:' . $controller); } // 解析操作 $action = !empty($path) ? array_shift($path) : null;
上一篇:猪年的第一波活动
下一篇:首页怎么调用指定栏目和搜索