🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
表单令牌可以放置重复提交,同时对机器人有一定的拦截作用,在 Frphp 的支持下(利用 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 FrBase{     public function index(){         if(FR_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 FrBase{     public function index(){         if(FR_POST){             $checkRules = array(                 'name'  => array('string', '2,10', '姓名应为 2 - 10 字符')             );             //第三个参数为可选参数,设置为true时自动检查 Token             $checker = new FrPHP\tools\dataChecker($_POST, $checkRules, true);             $res = $checker->check();             if($res){                 echo '验证通过';             }else{                 echo $checker->error;             }         }     } } ~~~