位置: 编程技术 - 正文

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)

  • 网上代增值税开错不退
  • 特定减免税货物的通关程序为
  • 未认证发票有时间限制吗
  • 计入税金及附加的科目
  • 报账单大写金额填写方式
  • 增值税不达起征点处理
  • 电子税务局上财务制度备案错误是啥意思
  • 小规模纳税人支付的增值税
  • 电梯生产设备
  • 坏账转销会计分录应收帐款金额怎么写
  • 公司商务卡可以日常消费
  • 不是公司车可以报销油费吗
  • 上市公司发行股票可以自行销售吗
  • 外购的半成品属于原材料吗
  • 营业外支出税前可以扣除吗
  • 销项负数发票怎么冲减成本
  • 清卡增值税申报比对不通过的原因
  • 2018水利基金税率是多少?怎么算
  • 房地产企业汇算清缴政策解析
  • 关于保险机构代收车船税开具增值税发票问题的公告
  • 融资租赁的房产,按收取的租金从租计征房产税
  • 收到税局代增值税专用发票已作废的退款怎么做账
  • 银行结算卡年费多少
  • 购销合同印花税按70%
  • 无法支付的其他账户
  • 买方投资公司
  • 企业购买理财产品的会计分录
  • 适用增值税简易计税的项目
  • 企业在国内采购并运往境外作为投资的货物
  • 出口布料有退税吗
  • 出租房屋免租期如何确认收入
  • 项目结束,财务应该怎么做
  • 危废处置怎么收费
  • 周围的材料分为哪几类
  • 个体户流水太大工商局会查吗
  • 利润表中的收入是按什么确认的
  • easyui给下拉框赋值
  • express框架使用
  • 旅行社小规模纳税人差额征税
  • php处理并发有哪些技术
  • php读取文件的一部分
  • 单图像三维重建
  • php 断点续传
  • 微信小程序在哪里打开
  • vue的mvvm模型
  • tf club下载
  • Vue3通透教程【十三】TS简单类型详解
  • Spring(十五):Spring整合MyBatis的两种方式
  • 生产型出口企业的概念
  • 预缴增值税款怎么入账
  • 公司借个人借款协议书范本
  • 印花税步骤
  • 库存商品入库的会计分录怎么写
  • 小规模纳税人企业所得税税收优惠政策
  • 收据不能入账如何处理
  • 一般纳税人增值税结转账务处理
  • 在建工程进项税额抵扣最新通知
  • 盘盈存货账务处理
  • 溢价发行可转换债券 利息调整在贷方吗
  • 出纳 记账凭证
  • 固定资产公司
  • sql如何实现
  • 在sp_executesql中使用like字句的方法
  • mysql隔离级别详解
  • ubuntu卸载ubuntu-desktop
  • Linux系统中uniq命令的基本使用教程
  • ubuntu系统升级到18
  • centos sh
  • windows8开发者预览版中文版ISO下载
  • sublime text配置node.js调试(图文教程)
  • python语言如何获取随机整数
  • 用dos命令创建用户
  • js编程中要使用到函数,分为哪几步?
  • python-pip安装
  • 网页弹窗不见了
  • javascript入门教程
  • 每天一篇文章锻炼口才的文章
  • [推荐]抖音上那些好看的视频和有才的帐号
  • python dask
  • 享受税收优惠影响就业吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设