位置: 编程技术 - 正文

ThinkPHP下表单令牌错误与解决方法分析(thinkphp表单验证)

编辑:rootadmin

推荐整理分享ThinkPHP下表单令牌错误与解决方法分析(thinkphp表单验证),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:thinkphp post,thinkphp post,thinkphp报表插件,thinkphp post,thinkphp exec,thinkphp表单提交,thinkphp表单提交,thinkphp表单提交,内容如对您有帮助,希望把文章链接给更多的朋友!

本文实例讲述了ThinkPHP下表单令牌错误与解决方法。分享给大家供大家参考,具体如下:

在项目的开发过程中,添加、编辑数据时偶尔会遇到系统提示的“表单令牌错误”,一开始没怎么在意,直到今天下午QA把此问题提到bug系统了,正好时间也有空余,就追着TP3.的源码看了下去,几分钟后,便知道原委了。

在项目中开启表单令牌,通常要在配置文件中做如下配置

以编辑数据为例,通常在服务端有个Model写上字段过滤规则,Action写上数据检测的代码,如

这时在IDE上双击create()定位到TP框架中Model.class.php中的create方法

看到代码会理解当autoCheckToken方法检测失败时会报错,那么就接着跟踪此方法

看了这段代码,会发现第一个判断中有$_SESSION[$name],那么这个seesion变量时从哪里过来的呢,这还得从生成令牌时说起,定位TokenBuildBehavior.class.php文件

ThinkPHP下表单令牌错误与解决方法分析(thinkphp表单验证)

此段代码主要是在TP开启表单验证的情况下,以TOKEN_NAME和当前URI的md5为健生成令牌值,再在用户提交表单时,先验证下是否存在该session,没有则返回false,有则紧接着和表单字段TOKEN_NAME验证下,如果一致先删除此session(作用时避免下次提交出先表单令牌错误),返回ture,否则返回false。

ok,回到主题,TP下表单提交之所以会出现令牌错误,那么就只有两种可能

1. 在令牌开启的状态下,提交的表单中,没有TOKEN_NAME字段或是没有相应session(当前提交表单环境下,没有生成相应session,这个主要是在用户提交后报错用户紧接着又刷新当前页面,同时编辑页面和展示页面是在同一个方法里)

2. 有session变量,但前后值不一样

我们项目之所以出现此错误,可以看看下面配置

本来应该写成布尔值的false,不知道哪位大侠任性的写成字符串的false了,那么判断时当然会按开启表单令牌的逻辑来,而且项目中,添加、编辑和展示都是同一个方法,一旦验证出错,一般程序处理逻辑会返回原有的界面,那么就和上次是同一个表单了,连续提交同一个表单也就相当于重复提交,那么便会报“表单令牌错误”。

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

thinkPHP显示不出验证码的原因与解决方法分析 本文实例讲述了thinkPHP显示不出验证码的原因与解决方法。分享给大家供大家参考,具体如下:今天到公司,svnupdate代码后,在浏览器上输入域名后,在

Yii框架分页实现方法详解 本文实例讲述了Yii框架分页实现方法。分享给大家供大家参考,具体如下:下家公司用的框架是yii,这几天看了下相关教程,今儿把分页教程写下,最

Yii框架实现图片上传的方法详解 本文实例讲述了Yii框架实现图片上传的方法。分享给大家供大家参考,具体如下:今天在网上看了下有关图片上传的教程,历经挫折才调试好,现在把

标签: thinkphp表单验证

本文链接地址:https://www.jiuchutong.com/biancheng/293585.html 转载请保留说明!

上一篇:PHP那些琐碎的知识点(整理)(细说php)

下一篇:thinkPHP显示不出验证码的原因与解决方法分析(thinkphp in)

  • 拍卖公司没开发票违法吗
  • 转租仓库交增值税吗
  • 股东退股如何清算盈亏
  • 普通发票作废要本人去拿吗
  • 所得税季报什么时间扣款
  • 小规模纳税人不允许开具零税率发票
  • 经营二手车怎么交税
  • 善意取得增值税专用发票如何处理
  • 法人贷款用于公司经营的分录怎么做
  • 溢价或者折价购买债券的会计处理.
  • 企业利用个体户走账
  • 淘宝企业店铺是工厂直销吗
  • 100万的收入要交多少
  • 滴滴客运服务费免税
  • 适用简易计税方法的口诀
  • 白酒五行属火还是水
  • 资产负债表的应收票据包括什么
  • 专用发票抵扣联丢失怎么办最新规定
  • 核销单丢失后应该怎么挂失和补录处理呢?
  • 货运发票与运输发票的区别
  • 提现属于支出吗
  • 增值税的销项税额和进项税额的区别
  • 企业收到税前投资分红如何缴纳增值税?
  • 苹果系统如何访问相册
  • 苹果系统怎么修复
  • 如何做无票收入的会计分录
  • 未分配利润分配利润分录
  • 商业一般纳税人税率多少
  • 腾讯电脑管家下载
  • word要打印保存在哪个类型
  • php字符串函数大全
  • 总结关于现金清查的会计核算分录
  • 什么是会计分录其一般表达形式是怎样的
  • vantUI van-picker中的column使用,picker选择器展示对象数组里面的属性,自定义展示数据
  • php extract函数
  • 发票金额与银行付款金额少几分钱
  • 营改增后企业一般纳税人认定标准为
  • 日出的时候是圣诞节
  • sdhc 速度
  • javaweb学生信息管理系统idea
  • elementui input无法输入
  • php 抓取别的网站的内容
  • 微信小程序在哪里找?
  • yii框架入门
  • 财务上大写数字420.1怎么写
  • 公对私转账没有到账怎么查询
  • 填写记账凭证的日期一般是会计人员填制记账凭证的
  • SQLServer 2008 Merge语句的OUTPUT功能
  • 其他应收款账户管理应遵循
  • sql数据对比语句
  • 购买设备分期付款凭证怎么做
  • 红冲发票后如何申报增值税
  • 探望生病员工属于什么费用
  • 土地拍卖相关法律法规
  • 投资主体将其拥有的货币或产业资本
  • 医保卡里收入和余额不一样
  • 增值税可以退吗
  • 怎么解释税收
  • 小规模纳税人购入货物收到增值税专用发票
  • 租赁合同的印花税的计税依据
  • 3%税率专票为什么不能抵扣
  • 跨年度的项目如何做
  • 一般纳税人哪些项目可以简易征收
  • mysql索引用法
  • mac的废纸篓
  • win7共享在哪
  • mac中的快捷键大全
  • 怎么取消win8.1开机密码
  • 如何限制网速不让孩子玩游戏
  • mac终端输入代码有什么影响
  • windows config文件
  • jquery的实现原理
  • javascriptz
  • linux怎么设置
  • dos命令chkdsk
  • node.js基础入门
  • javascript的代码写在哪里
  • 重庆市税收排名地区
  • 怎么看有没有欠税
  • 税务登录 河北省地方税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设