ThinkPHP表单令牌错误的相关解决方法分析

5年以前  |  阅读数:396 次  |  编程语言:PHP 

本文分析了ThinkPHP表单令牌错误的相关解决方法。分享给大家供大家参考,具体如下:

今天在用ThinkPHP做程序的时候,以前用create创建数据的时候,出现了错误提示"表单令牌错误",然后各种百度各种谷歌,得到的网上解答给出了以下的建议

1、清缓存: 用了,我把所有的Cache下的文件都删掉了,并将~app.php和~runtime.php两个文件同时都删掉了,但是没有效果。

2、将TOKEN_ON参数设置为FALSE: 试过了,但是也不行,虽然不提示表单令牌错误了,但是添加到数据库的数据是空的。

3、在模板文件的表单中添加{NOTOKEN}:添加了,但是结果同样是无效!

到这里我就开始无语了,难道就我电脑上的ThinkPHP不行?我觉得应该不是,我又重新写了一个添加函数,结果正常,这时候我就开始想,是不是我的上一个函数写错了?但是检查之后发现没错!后来慢慢的一个个文件开始那个查看啊,终于让我发现了原因:

在ThinkPHP自动生成的各个文件夹中,有一个叫做"Data"的文件夹,下面有个"_fields"文件夹,这个文件夹中存放的是各个模型中数据表中的相关信息,也就算是映射(我的理解),我仔细检查了一个,发现,有两个文件中只有"'_autoinc' => true,"这一项,其他的都有很多,类似于:


    <?php
    return array (
     0 => 'id',
     1 => 'title',
     2 => 'content',
     3 => 'publishedtime',
     4 => 'userid',
     5 => 'params',
     '_autoinc' => true,
     '_pk' => 'id',
    );
    ?>

到这个时候就可以知道原因了,是某个操作将这些数据给删掉了一部分,这样ThinkPHP在进行表单验证的时候,无法进行数据的映射,也就导致了ThinkPHP的错误,将他们按照数据表中的顺序进行添加之后,重新运行,正常!

到此,这个问题解决~~~~

(本文所述thinkPHP环境为早期版本,用户在使用新版的时候可参考对应目录)

PS:这里推荐几款本站的格式化/美化/转换工具可以帮助你整理杂乱无章的代码,相信大家在以后的开发中能够用得上:

php代码在线格式化美化工具:
http://tools.jb51.net/code/phpformat

JavaScript代码美化/压缩/格式化/加密工具:
http://tools.jb51.net/code/jscompress

在线XML格式化/压缩工具:
http://tools.jb51.net/code/xmlformat

JSON代码格式化美化工具:
http://tools.jb51.net/code/json

在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat

sql代码在线格式化美化工具:
http://tools.jb51.net/code/sqlcodeformat

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《PHP中cookie用法总结》、《smarty模板入门基础教程》及《PHP模板技术总结》。

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

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例