ThinkPHP5表单令牌+表单数据验证验证规则
转:http://blog.163.com/zhuxun_why/blog/static/26813905020171861417642/
表单验证真的很简单 相比较yii的表单验证tp做的很人性 也能达到效果
相关规则:
// 验证规则默认提示信息
protected static $typeMsg = ['require' => ':attribute不能为空','number' => ':attribute必须是数字','float' => ':attribute必须是浮点数','boolean' => ':attribute必须是布尔值','email' => ':attribute格式不符','array' => ':attribute必须是数组','accepted' => ':attribute必须是yes、on或者1','date' => ':attribute格式不符合','file' => ':attribute不是有效的上传文件','p_w_picpath' => ':attribute不是有效的图像文件','alpha' => ':attribute只能是字母','alphaNum' => ':attribute只能是字母和数字','alphaDash' => ':attribute只能是字母、数字和下划线_及破折号-','activeUrl' => ':attribute不是有效的域名或者IP','chs' => ':attribute只能是汉字','chsAlpha' => ':attribute只能是汉字、字母','chsAlphaNum' => ':attribute只能是汉字、字母和数字','chsDash' => ':attribute只能是汉字、字母、数字和下划线_及破折号-','url' => ':attribute不是有效的URL地址','ip' => ':attribute不是有效的IP地址','dateFormat' => ':attribute必须使用日期格式 :rule','in' => ':attribute必须在 :rule 范围内','notIn' => ':attribute不能在 :rule 范围内','between' => ':attribute只能在 :1 - :2 之间','notBetween' => ':attribute不能在 :1 - :2 之间','length' => ':attribute长度不符合要求 :rule','max' => ':attribute长度不能超过 :rule','min' => ':attribute长度不能小于 :rule','after' => ':attribute日期不能小于 :rule','before' => ':attribute日期不能超过 :rule','expire' => '不在有效期内 :rule','allowIp' => '不允许的IP访问','denyIp' => '禁止的IP访问','confirm' => ':attribute和确认字段:2不一致','different' => ':attribute和比较字段:2不能相同','egt' => ':attribute必须大于等于 :rule','gt' => ':attribute必须大于 :rule','elt' => ':attribute必须小于等于 :rule','lt' => ':attribute必须小于 :rule','eq' => ':attribute必须等于 :rule','unique' => ':attribute已存在','regex' => ':attribute不符合指定规则','method' => '无效的请求类型','token' => '令牌数据无效','fileSize' => '上传文件大小不符','fileExt' => '上传文件后缀不符','fileMime' => '上传文件类型不符',
];
全在
think\Validate 里面 我直接上代码:
<?php
/*** create by phpstorm* user zhu_xun* create_time 2017/2/8* controller_name Login* content 登录 找回密码类控制器* */
namespace app\index\controller;
use think\Validate; //一定要use 这个方法
class Login extends Validate //继承
{//这里是描述 可不要 protected $scene = ['edit' => ['user','password'],];public function index(){if(input('post.')){$info = input('post.');//接收值//这是验证规则 中间的 | 隔开多个验证规则$rule = ['user' => 'require|token', //我这里的token 是令牌验证'password' => 'require',];//错误信息提示 $msg = ['user.require' => '登录账号不能为空','password.require' => '密码不能为空',];// 实例化验证类$validate = new Validate($rule, $msg);$result = $validate->check($info);$error = $validate->getError();//打印错误规则if(empty($error)){echo 2;}else{echo $error; //错误信息}}else{return view('login',['name'=>'thinkphp']);}}
方法有很多 但是我就用的这个 感觉很简单
验证规则支持对表单的令牌验证,首先需要在你的表单里面增加下面隐藏域:
<input type="hidden" name="__token__" value="{$Request.token}" />
或者
{:token()}
protected $rule = [ 'name' => 'require|max:25|token', 'email' => 'email',];简单吧
您有利他之心,乐于分享,
您遇到php问题,百度且问了其他群之后仍没得到解答,
欢迎加入,PHP技术问答群,QQ群:292626152
转载于:https://blog.51cto.com/phpervip/1923456
ThinkPHP5表单令牌+表单数据验证验证规则相关推荐
- php token 失效时间,ThinkPHP5.1表单令牌Token失效问题的解决_php实例 - PHP
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 前言 ThinkPHP出于安全的考虑增加了表单令牌Token,由于通过Ajax异步更新数据仅仅部分页面刷新数据,就导致了 ...
- thinkPHP5.0表单令牌使用
表单令牌的作用:避免表单的重复提交(如在tp5提交成功等待跳转页面刷新页面会在次提交表单) 原理:在初始化表单时,生成一个session标识'token',提交表单时将这个token一起提交过去,然后 ...
- JavaScript 表单与表单验证
JavaScript 表单 JavaScript 表单验证 HTML 表单验证可以通过 JavaScript 来完成. 以下实例代码用于判断表单字段(fname)值是否存在,如果存在,则弹出信息,否则 ...
- Angular响应式表单及表单验证
1. 什么是响应式表单? 响应式表单提供了一种模型驱动的方式来处理表单输入,其中的值会随时间而变化. 响应式表单使用显示的,不可变的方式,管理表单在特定时间点上的状态.对表单状态的每一次变更都会返回一 ...
- ThinkPHP6项目基操(18.实战部分 表单令牌Token 防CSRF)
表单令牌Token 0. 前言 1. TP6 令牌token使用 1.1 表单提交 1.2 AJAX提交 2. TP6 令牌token验证 2.1 路由验证 2.2 控制器验证 2.3 验证器验证 0 ...
- thinkphp 表单令牌
表单令牌 ThinkPHP支持表单令牌验证功能,可以有效防止表单的重复提交等安全防护.要启用表单令牌功能,需要配置行为绑定, 在应用或者模块的配置目录下面的行为定义文件tags.php中 就是在你的 ...
- JQuery ajax提交表单及表单验证
JQuery ajax提交表单及表单验证 博客分类: jsp/html/javascript/ajax/development Kit 开源项目 注:经过验证,formValidator只适合一个页面 ...
- php ci 表单校验,表单验证 - CodeIgniter 中文手册|用户手册|用户指南|Wiki文档
表单验证详解 CodeIgniter 提供了一个全面的表单验证和数据预处理类以帮助缩减你所写的代码. 概述 在解释 CodeIgniter 的数据验证处理之前,让我们先描述一下一般的情况: 一个表单显 ...
- ant4 多个form 验证_ant-design表单处理和常用方法及自定义验证操作
首先要说一下antdesign这个框架API和demo丰富,而且开发环境提供对应的warning来纠正用户的错误.是一个很好的组件库. 关于表单验证方面是依赖于 async-validator 库.百 ...
最新文章
- 《计算机组成原理》----2.6 浮点数
- lower() oracle,PLSQL LOWER用法及代码示例
- [react] 怎么在JSX里属性可以被覆盖吗?覆盖的原则是什么?
- 10个优秀的Objective-C和iOS开发在线视频教程
- 缺货警告!小米这款手机已被骂惨...
- 【干货分享】数字营销与企业数字化转型.pdf(附下载链接)
- 商业有规律,赚钱有方法,不要在盲目努力了
- Ubuntu 20.04 安装 php 并配置 OpenResty
- tiny_mce的本地图片上传插件
- 以太坊虚拟机 EVM(4)分布式存储架构设计(FISCO BCOS为例)
- 微信小程序需要的软件下载
- JavaScript 特效三大系列总结
- 【转载】MiniUtilityFramework(九):CText和TEXT
- 计算机网络:广域网的基本概念
- dedecms---一个简单酷站的构建及解析
- react中请求网络图片加载不出来的问题 解决
- 2003服务器开机无限重启,Windows2003 系统自动重启
- 计时函数clock()与数据类型clock_t
- 记录vue预渲染prerender-spa-plugin踏坑
- Tessellation on Any Budget