因为项目需要表单提交,可是发现了必须要防止用户提交,经过了几个小时的百度旅游总算找到的方法,其实说到底还是看官方手册来的头绪,以后看来要多看。。。。。。。
其实好像就是验证器中加入token的验证而已,撸代码吧
首先在html的from中加入下列代码,其实官方手册有说明的
1
2
3
{:token()}
或者
<input type="hidden" name="__token__" value="{$Request.token}" />
然后再控制器中加入
$token = input("__token__");//获取提交过来的令牌
$data = [
'__token__' => $token,
];
//验证路由
$rule = [
'__token__' => 'token',
];
//错误信息
$msg = [
'__token__' => '请不要刷新该页面!',
];
//引入验证类
$validate = Validate::make($rule,$msg);
if (!$validate->check($data)) {
//如果验证不通过则错误页面并显示错误信息,3s后跳转指定页面
$this->error($validate->getError(), url("Index/index"));
}else{
//通过后则正常进行
}
记得use think\Validate
网友评论