# 表单令牌
表单令牌可以放置重复提交,同时对机器人有一定的拦截作用,在 phpGrace 的支持下(利用 cookie),实现这样的功能是非常简单的,函数说明:
## **1、setToken() 设置token**
在表单中使用隐藏域设置令牌,如:
~~~
" />
~~~
## **2、getToken 获取令牌的值**
在控制器内获取表单提交信息,并校验令牌,如:
~~~
class indexController extends grace{
public function index(){
if(PG_POST){
$token = getToken();
echo "系统记录的 token:{$token}
";
echo "POST数据中的 token:{$_POST['__token__']}
";
if($token == $_POST['__token__']){
echo 'ok';
}else{
echo 'token 错误';
}
}
}
}
~~~
## **说明:**
getToken() 获取token 后会注销 cookie 中记录的 token,只能获取一次哦 ^\_^
## **3、数据验证过程中自动验证token**
3.1 遵循规则:表单内隐藏域的名称为:“\_\_token\_\_”
~~~
" />
~~~
3.2 在进行数据验证是设置验证token,如:
~~~
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;
}
}
}
}
~~~