位置: 编程技术 - 正文

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

发布时间:2024-01-12

推荐整理分享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)

  • 保单税优识别码图片
  • 亏损企业如何填报企业所得税
  • 开农贸市场挣钱吗
  • 工会经费与残保金的取数是一致吗
  • 文化创意服务的税率
  • 个体户交了增值税又开负数发票怎么退税
  • 股权转让时的资金是什么
  • 进口增值税的计税价格为
  • 事业编人员贷款
  • 债权利息收入要交所得税吗
  • 企业资产业务收购税务处理怎么做?
  • 水产养殖公司的经营范围_问答
  • 建筑业商业保险受益人可以是公司吗
  • 增值税专用发票验票
  • 总资产增长率的含义
  • 小规模附加税减免政策2023
  • 固定资产房屋折旧年限及残值
  • 什么情况需要对房屋外观拍照
  • 申请办理银行承兑流程
  • 个独企业如何拿钱
  • 增值税专用发票的税率是多少啊
  • 开发企业土地使用税计算方法
  • 车辆保险费计入车辆的入账成本吗
  • 模具费用如何平摊到产品上
  • 赎回理财产品的利息怎么做账
  • 有限公司注册资金多少好
  • 高新企业认定条件2019
  • php怎么输出汉字
  • yii2.0使用Plupload实现带缩放功能的多图上传
  • 佣金代扣代缴增值税需要缴纳附加税吗
  • 在php中,字符串有哪些表示形式
  • 如何失业保险金
  • 同一控制下企业合并和非同一控制下企业合并的区别
  • 在vue中如果computed属性是一个异步操作怎么办?
  • php实现发送邮件
  • 数据库管理框架
  • 公司收到财政补贴款的会计分录
  • web前端基础教程
  • 办公室装修款怎么做账
  • php执行系统命令函数
  • 帝国cms设置获取IP字段
  • 公司法人代表能考公务员吗
  • 汇算清缴管理费用明细有哪些
  • 会计报表逾期未申报
  • 长期股权投资种类
  • python怎么用
  • 增值税纳税申报实训心得体会
  • 所得税费用该怎么算
  • 小规模纳税人未开票收入如何申报增值税
  • 房地产会计开发工资高吗
  • 其他权益工具影响所得税吗
  • 企业所得税如何规避
  • 独立核算分公司与总公司的账务处理
  • 对外支付3万美元怎么算
  • 购车是否有进项税额
  • 进项转出做账做什么会计
  • 多缴纳了个税税率怎么办
  • 小规模纳税人可以转为一般纳税人吗?
  • 预付账款是属于什么类
  • 先开票后发货的会计分录
  • 经营性应收项目和经营性应付项目
  • 企业的管理人员应该是互补型
  • 新设企业如何建账
  • 实现分页功能的多种原理方案
  • window系统怎么用
  • win8系统怎么安装微信
  • 系统之家一键重装系统教程
  • 360安全卫士中心未完全开启
  • windows的小技巧
  • 使用shell脚本实现自动化软件部署
  • cocos2d教程
  • cocos2d-x教程
  • 批处理执行另一个批处理
  • 无法加载odbc驱动程序
  • 一款简单的网络版多媒体课件制作软件是什么
  • 源码讲解
  • 江苏国税电子税务局打印机设置
  • 税务核查主要核算内容
  • 税务局组织收入存在的问题
  • 云南省地方税务局公告2011年第6号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号