(11)学习tp5之命令行的使用和验证表单令牌
系统学习tp5框架,请点击下面的连接
(2)学习tp5之常量、自动加载、命名空间
(3)学习tp5之配置文件
(4)学习tp5之路由类型,定义,动态注册,过滤,闭包,miss(默认),资源路由
(5)学习tp5之请求
(6)学tp5之响应
(7)学习tp5之控制器原理和使用
(8)学习tp5之ORM操作数据库
(9)学习tp5之模型
(10)学习tp5之视图
(11)学习tp5之命令行的使用和验证表单令牌
(12)学习tp5之验证码和缓存
(13)学习tp5之上传图片
(14)学习tp5之日志
(15)学习tp5之 自定义命令行
命令行的最常用:
手册-》命令行-》自动生成目录结构。
注意:是先在build.php(右侧)中配置-》执行命令(在最下面)-》才生成好的目录(左侧栏)
自动生成继承好的控制器类 或 模型类(手册-》命令行-》创建类库文件)
注意:默认创建7个资源路由方法
验证
总结:
1、验证规则分2种:框架自带的(内置规则)、自定义的(用正则)
路由:
验证分4种:
1、控制器验证(手册-》验证-》控制器验证):其实它指的是调用控制器基类提供的$this->validate()进行验证
2、模型验证。没用过
3、独立验证(手册-》验证-》验证器):它是在控制器中,定义验证规则,new 验证器类在操作...(相当于所有的操作都写在控制器的方法中,这样不好的地方就是代码不能复用)
Route::get('index','index/VaData/index'); //手册-》验证-》独立验证 Route::post('login','index/VaData/login');
4、验证器(手册-》验证-》验证器):单独定一个验证器类,在里面写验证规则、错误信息等。在控制器中使用静态方法调用Loader::validate('验证器类'),在进行效验。官方推荐用法
因为:验证是个功能,应该单独分离出来
定义验证器的代码:
模板代码:
控制器中的代码:
表单令牌
令牌:为了安全考虑,非本表单的提交。都不会有后续操作(因为服务端没有接收到令牌)
案例1:机器人批量注册
人家直接甩过来一批账号,往你表里插,验证码只能挡住一部分。但我们使用表单令牌就不一样了。如果服务器端没有接收到令牌,就知道用户没有访问html页面(没有通过表单进行提交),就不会再有后续操作了
案例2:爬虫登录时
如果服务器端没有接收到令牌,就知道这可能是爬虫了,因为它不是通过表单进行提交的,就不会让他登录成功,当然人家可能会该模拟__token__(右键查看源码模拟不了__token__,因为你查看源代码后在提交就会报token失效了)
思路:
1、先在模板中加入隐藏域
2、在验证规则中加入token
3、控制器调用