位置: 编程技术 - 正文

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)

  • 注册税务师考试科目
  • 企业注销库存怎么做账
  • 油费可以抵扣进项税额
  • 小规模纳税人免税怎么做账
  • 其他应收款计提坏账吗
  • 小规模纳税人增值税税率
  • 铲车用什么燃油
  • 建筑工人的工资应该怎样支付
  • 售后维修的配件开维修费
  • 公司分立是不是法人
  • 掌握无形资产核算方法
  • 财务费用手续费有哪些
  • 代办会议费是否允许差额纳税
  • 电子发票怎么红冲步骤视频
  • 个体户报税可以朋友代替吗
  • 外地预缴企业所得税汇算清缴退税
  • 单位没车能用停车票不能用加油票吗?
  • 建筑行业增值税是多少
  • 哪几种跨省邮寄发票是违法的?
  • 汇算清缴补交需要调报表吗
  • 境内个人去境外开设公司
  • 餐费发票怎么开
  • 商业企业成本核算内容包括
  • 有业务往来的两家公司可以投一个公司吗
  • 专票私人能开吗?
  • 专项应付款怎么转固定资产
  • mac dns 设置
  • 总资产报酬率是怎么算出来的
  • 已认证的发票退税怎么退
  • 如何编制处置固定资产
  • 成本核算的意义是什么
  • 先开票后发货怎么操作
  • 营改增改了什么
  • 股东投资款验资后可以转出吗
  • wordpress创建
  • php文件打包下载
  • 谷歌浏览器被hao123锁定改不了
  • uni-app入门到实战 以项目为导向
  • 账户验证交易
  • 固定资产如何分类?
  • wordpress site
  • 管理费用二级科目明细可以自己设置吗
  • 企业所得税太高怎么合理规避
  • 企业管理费用的分类
  • 稿费的个税是怎么算的
  • 不动产作价出资入股登记收件
  • 个人所得税计算方法及抵扣方法
  • 微信,支付宝等第三方支付对货币的影响
  • 增值税纳税申报类型有哪些
  • 计入其他综合收益的有哪些
  • 已认证的红字发票怎么开
  • 卖二手车怎么做账务处理
  • 支付职工培训费是什么科目
  • 公司差旅费报销标准表
  • 低值易耗的管理制度
  • 房地产开发企业土地增值税怎么计算
  • 跨境汇款汇错
  • 基于存储过程的计算
  • 行为异常不能使用优惠
  • 笔记本电脑的触摸板怎么开启和关闭
  • win7全局搜索
  • 恢复双系统启动菜单
  • 鼠标点击关闭按钮没反应
  • 电脑xp操作系统
  • Fatal server error: could not open 无法进图形界面的解决办法
  • win7系统玩红色警戒怎么全屏设置
  • 硬盘xp系统
  • win7系统添加右键菜单在哪里设置
  • win8无法安装net4.7
  • windows10的操作中心
  • javascript的代码写在哪里
  • 简单谈谈你的入党动机
  • python爬虫全套教程
  • jquery图片轮播无缝连接
  • 虚拟机中使用keil
  • linux分区类型默认的是什么
  • python爬虫爬取京东某个商品
  • jquery ajax局部加载方法详解(实现代码)
  • 广东国税局局长是谁
  • 养老机构范畴
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设