thinkphp 表单令牌

表单令牌

ThinkPHP支持表单令牌验证功能,可以有效防止表单的重复提交等安全防护。要启用表单令牌功能,需要配置行为绑定,

在应用或者模块的配置目录下面的行为定义文件tags.php中

就是在你的

        

或者在你项目目录配置文件(conf)里创建tags.php

tags.php文件里面的代码

  return array(
        // 添加下面一行定义即可
        //‘view_filter‘ => array(‘Behavior\TokenBuild‘),
        // 如果是3.2.1以上版本 需要改成
        ‘view_filter‘ => array(‘Behavior\TokenBuildBehavior‘),
);

然后再在你的配置文件【 config.php 】里面加入

    ‘TOKEN_ON‘      =>    true,  // 是否开启令牌验证 默认关闭
    ‘TOKEN_NAME‘    =>    ‘__hash__‘,    // 令牌验证的表单隐藏字段名称,默认为__hash__
    ‘TOKEN_TYPE‘    =>    ‘md5‘,  //令牌哈希验证规则 默认为MD5
    ‘TOKEN_RESET‘   =>    true,  //令牌验证出错后是否重置令牌 默认为true

然后就成功了

详情进入:http://document.thinkphp.cn/manual_3_2.html#form_token

时间: 2024-08-05 09:31:06

thinkphp 表单令牌的相关文章

表单令牌 防止重复提交

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

ThinkPHP5.1表单令牌Token失效问题的解决_php实例 - PHP

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 前言 ThinkPHP出于安全的考虑增加了表单令牌Token,由于通过Ajax异步更新数据仅仅部分页面刷新数据,就导致了令牌Token不能得到更新,紧接着的第二次新建或更新数据(提交表单时)失败——不能通过令牌的验证. 当然了,最简单的办法就是刷新整个页面,就导致了异步刷新的无意义!在网上搜寻了很多,有好几种方法:看完觉得有一个最好: Ajax异步动态请求创建新令牌并更新到本地 主要思路:在每次发送表单结束后(不管成

验证-表单令牌

表单令牌 验证规则支持对表单的令牌验证,首先需要在你的表单里面增加下面隐藏域: <input type="hidden" name="__token__" value="{$Request.token}" /> 或者 {:token()} 然后在你的验证规则中,添加token验证规则即可,例如,如果使用的是验证器的话,可以改为: protected $rule = [ 'name' => 'require|max:25|toke

表单提交中的重复问题(表单令牌验证)

在日常的表单提交中,如果由于网络或其他原因,很容易出现同一个表单提交多次,此时可以使用表单令牌验证 在提交的表单里,增加多一个隐藏数据,token,该token由后台脚本生成(如:php使用md5(rand(1,99999999))) 然后将生成的值保持至session或文本中,在表单提交中,对该token进行准确性认证,以确定表单提交的唯一性

thinkPHP 表单自动验证功能

昨天晚上我们老大叫我弄表单自动验证功能,愁了半天借鉴了好多官网的知识,才出来,诶,总之分享一下我自己的成果吧! thinkphp 在Model基类为我们定义了自动验证的函数和正则表达式,我们只需要在对应的数据库表的模型类下建立$_validate属性就可以了. 1.我们找到Model基类,可以看到 protected $_validate       = array();  // 自动验证定,它是数组类型的,下面在对应数据模型文件定义它: 2. public function CheckVeri

ThinkPHP表单验证

表单验证 静态方式 首先需要建一个相应表的数据模型 如infomodel.class .php  在模型中 建成员变量  再建数组 在数组中添加验证规则  需要通过$_validate属性定义验证规则 格式为  array( array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]), array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]), ......); <?php namespace Home\Model; use Think\Model; c

Thinkphp表单自动验证

之前项目经常用到,没做总结. 自动验证是Thinphp模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 原理: create()方法收集表单($_POST)信息并返回,同时触发表单自动验证,过滤非法字段, 在控制器中使用create()方法,(返回值为true/false),会自动触发模型类中的$_validate属性(为父类Model中的方法,在子类Model中重写),在$_validate中自定义验证规则(验证规则下面会详细说明),当create()方

生成 表单 令牌

/** * 生成令牌 * * @return string */ public function gen_token() { $hash = md5(uniqid(rand(), true)); $token = sha1($hash); return $token; }

thinkphp表单上传文件并将文件路径保存到数据库中

上传单个文件,此文以上传图片为例,上传效果如图所示 创建数据库upload_img,用于保存上传路径 CREATE TABLE `seminar_upload_img` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `img_name` varchar(255) DEFAULT NULL COMMENT '图片名称',  `img_url` varchar(255) DEFAULT NULL COMMENT '图片路径',  `create_time` te