(11)学习tp5之命令行的使用和验证表单令牌

系统学习tp5框架,请点击下面的连接

(1)学习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之 自定义命令行


命令行的最常用:

(11)学习tp5之命令行的使用和验证表单令牌

手册-》命令行-》自动生成目录结构。

注意:是先在build.php(右侧)中配置-》执行命令(在最下面)-》才生成好的目录(左侧栏)

(11)学习tp5之命令行的使用和验证表单令牌

自动生成继承好的控制器类 或 模型类(手册-》命令行-》创建类库文件)

注意:默认创建7个资源路由方法

(11)学习tp5之命令行的使用和验证表单令牌

(11)学习tp5之命令行的使用和验证表单令牌

(11)学习tp5之命令行的使用和验证表单令牌

验证


总结:

1、验证规则分2种:框架自带的(内置规则)、自定义的(用正则)

路由:

(11)学习tp5之命令行的使用和验证表单令牌

验证分4种:

1、控制器验证(手册-》验证-》控制器验证):其实它指的是调用控制器基类提供的$this->validate()进行验证

2、模型验证。没用过

3、独立验证(手册-》验证-》验证):它是在控制器中,定义验证规则,new 验证器类在操作...(相当于所有的操作都写在控制器的方法中,这样不好的地方就是代码不能复用)

Route::get('index','index/VaData/index');  //手册-》验证-》独立验证
Route::post('login','index/VaData/login');

(11)学习tp5之命令行的使用和验证表单令牌

(11)学习tp5之命令行的使用和验证表单令牌

4、验证器(手册-》验证-》验证):单独定一个验证器类,在里面写验证规则、错误信息等。在控制器中使用静态方法调用Loader::validate('验证器类'),在进行效验。官方推荐用法

因为:验证是个功能,应该单独分离出来

定义验证器的代码:

(11)学习tp5之命令行的使用和验证表单令牌

模板代码:

(11)学习tp5之命令行的使用和验证表单令牌

控制器中的代码:

(11)学习tp5之命令行的使用和验证表单令牌



表单令牌

令牌:为了安全考虑,非本表单的提交。都不会有后续操作(因为服务端没有接收到令牌)

案例1:机器人批量注册

人家直接甩过来一批账号,往你表里插,验证码只能挡住一部分。但我们使用表单令牌就不一样了。如果服务器端没有接收到令牌,就知道用户没有访问html页面(没有通过表单进行提交),就不会再有后续操作了

案例2:爬虫登录时

如果服务器端没有接收到令牌,就知道这可能是爬虫了,因为它不是通过表单进行提交的,就不会让他登录成功,当然人家可能会该模拟__token__(右键查看源码模拟不了__token__,因为你查看源代码后在提交就会报token失效了

思路:

1、先在模板中加入隐藏域

2、在验证规则中加入token

3、控制器调用

(11)学习tp5之命令行的使用和验证表单令牌

(11)学习tp5之命令行的使用和验证表单令牌

(11)学习tp5之命令行的使用和验证表单令牌