# 表单令牌
表单令牌可以放置重复提交,同时对机器人有一定的拦截作用,在 phpGrace 的支持下(利用 cookie),实现这样的功能是非常简单的,函数说明:
## **1、setToken() 设置token**
在表单中使用隐藏域设置令牌,如:
~~~
<form action="" method="post">
<input type="text" name="name" />
<input type="hidden" name="token" value="<?php echo setToken();?>" />
<input type="submit" value="提交"/>
</form>
~~~
## **2、getToken 获取令牌的值**
在控制器内获取表单提交信息,并校验令牌,如:
~~~
<?php
class indexController extends grace{
public function index(){
if(PG_POST){
$token = getToken();
echo "系统记录的 token:{$token}<br />";
echo "POST数据中的 token:{$_POST['__token__']}<br />";
if($token == $_POST['__token__']){
echo 'ok';
}else{
echo 'token 错误';
}
}
}
}
~~~
## **说明:**
getToken() 获取token 后会注销 cookie 中记录的 token,只能获取一次哦 ^\_^
## **3、数据验证过程中自动验证token**
3.1 遵循规则:表单内隐藏域的名称为:“\_\_token\_\_”
~~~
<input type="hidden" name="__token__" value="<?php echo setToken();?>" />
~~~
3.2 在进行数据验证是设置验证token,如:
~~~
<?php
class indexController extends grace{
public function index(){
if(PG_POST){
$checkRules = array(
'name' => array('string', '2,10', '姓名应为 2 - 10 字符')
);
//第三个参数为可选参数,设置为true时自动检查 Token
$checker = new phpGrace\tools\dataChecker($_POST, $checkRules, true);
$res = $checker->check();
if($res){
echo '验证通过';
}else{
echo $checker->error;
}
}
}
}
~~~
- 快速开始
- phpGrace 介绍
- 环境需求及伪静态设置
- 目录结构及命名规则
- 初始化、原理、分组
- 控制器与路由
- 创建控制器
- 基础控制器
- URL解析规则
- 自定义路由
- URL生成
- 数据与模型
- 数据库配置
- 获取数据库操作对象
- 数据库操作(CURD)
- 数据分页详解
- 事务处理
- 数据验证
- 表单令牌及验证
- 模型创建与调用
- 视图
- 视图文件创建
- 调用、引用视图
- 视图路径模式
- 会话机制
- Cookie 操作
- Session[文件型 ]
- Session [memcache]
- Session [redis]
- 缓存机制
- 缓存概述及配置
- 文件型缓存
- Memcache 形式的缓存
- Memcache介绍
- Memcache安装
- 开启PHP Memcache
- PHP操作Memcache
- Memcache来保存Session
- Memcached图形化管理工具
- Memcache安全相关
- redis 形式的缓存
- Redis介绍
- Redis安装
- 开启 PHP Redis
- Redis图形化管理工具
- PHP操作Redis
- 配置、常量、语言
- 全局配置、分组配置
- 预定义常量
- 语言包使用说明
- 工具
- 函数小工具
- 安全与扩展
- 框架部署安全
- 常规安全
- 扩展说明
- 常用类库
- 图片处理类
- 文件上传类
- IP地址获取类
- 验证码绘制类
- 日期时间换算类
- md5加密类
- 服务器信息类
- curl通信类
- 文件下载类
- 类反射工具
- XML生成与解析
- 汉字转拼音类
- 文件夹操作
- 人民币大写转换类
- 第三方类库
- QQ登录 - web版
- 微信扫码登录-网站
- excel 读写操作
- 阿里云短信接口
- SMTP 邮件发送
- 二维码生成类
- word、pdf 生成类
- 阿里云静态云存储接口类