表单令牌 防止重复提交

有人说 TOKEN 在3.2中无法使用,就研究了一下,希望对大家有帮助。
无法正常原因:
原来的tags.php 被迁移到以下文件
ThinkPHP\Mode\common.php
并且在:
'template_filter'=> array(
'Behavior\ContentReplaceBehavior', // 模板输出替换
),
只加了一个行为,对比3.1少了 TokenBuildBehavior
所以
方法1:只要我们在Application\Common\Conf创建 tags.php文件
加入:
return array(
'view_filter' => array(
'Behavior\TokenBuildBehavior', // 表单令牌
),
);
方法2:在ThinkPHP\Mode\common.php 加入
'Behavior\TokenBuildBehavior', // 表单令牌

 

 

//'配置项'=>'配置值'
'view_filter' => array('Behavior\TokenBuildBehavior'),
'TOKEN_ON' => true, // 是否开启令牌验证 默认关闭
'TOKEN_NAME' => '__hash__', // 令牌验证的表单隐藏字段名称,默认为__hash__
'TOKEN_TYPE' => 'md5', //令牌哈希验证规则 默认为MD5

create的时候会自动进行令牌验证 

 

  1. if (!$User->autoCheckToken($_POST)){
  2.  // 令牌验证错误
  3.  }手动进行表单验证
    1. C('TOKEN_ON',false);取消表单验证
posted @ 2015-06-08 14:10  brady-wang  阅读(585)  评论(0编辑  收藏  举报