表单令牌 防止重复提交

有人说 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);取消表单验证
时间: 2024-08-05 09:31:05

表单令牌 防止重复提交的相关文章

js表单验证时重复提交的问题

1.错误示例 上图中的提交表单的按钮类型是submit的,这样提交表单的时候就算你onclick事件中返回的是false表单还是会提交的 2.正确示例: 我们将按钮的类型改为button这样就不会发生重复提交表单的现象了.

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

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

thinkphp 表单令牌

表单令牌 ThinkPHP支持表单令牌验证功能,可以有效防止表单的重复提交等安全防护.要启用表单令牌功能,需要配置行为绑定, 在应用或者模块的配置目录下面的行为定义文件tags.php中 就是在你的          或者在你项目目录配置文件(conf)里创建tags.php tags.php文件里面的代码 return array( // 添加下面一行定义即可 //'view_filter' => array('Behavior\TokenBuild'), // 如果是3.2.1以上版本 需要

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

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

ASP.NET MVC 表单的几种提交方式

下面是总结一下在ASP.NET MVC中表单的几种提交方式. 1.Ajax提交表单 需要引用 <script type="text/javascript" src="/Scripts/jquery-1.7.2.min.js"></script>    <script src="/Scripts/jquery.validate.min.js" type="text/javascript">&l

Yii表单验证中,提交前验证,不通过不提交

$form = $this->beginWidget('CActiveForm',array(         'id' => 'add_host',         'enableAjaxValidation' => false,         'enableClientValidation' => true,         'clientOptions' => array(                 'validateOnSubmit' => true  

验证-表单令牌

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

jQuery form插件的使用--用 formData 参数校验表单,验证后提交(简单验证).

Form Plugin API 里提供了很多有用的方法可以让你轻松的处理表单里的数据和表单的提交过程. 测试环境:部署到Tomcat中的web项目. 一.引入依赖js <script src="jquery-1.3.1.js" type="text/javascript"></script> <script src="jquery.form.js" type="text/javascript"&g

一个表单、多个提交按钮、提交到多个不同页面

<html> <head> <title>一个表单.多个提交按钮.提交到多个不同页面</title> </head> <script> function sm1(){ document.form1.action="1.php"; document.getElementByIdx("form1").submit(); } function sm2(){ document.form1.action=