This article analyzes related solutions to ThinkPHP form token errors. Share it with everyone for your reference, the details are as follows:
When I was using ThinkPHP to make a program today, when I used create to create data, an error message "Form Token Error" appeared. Then I searched various Baidu and Google and got online answers that gave the following suggestions
1. Clear the cache: After using it, I deleted all the files in the Cache and deleted both the ~app.php and ~runtime.php files at the same time, but it had no effect.
2. Set the TOKEN_ON parameter to FALSE: I tried it, but it didn’t work. Although the form token error is not prompted, the data added to the database is empty.
3. Add {__NOTOKEN__} to the form of the template file: Added, but the result is also invalid!
I'm speechless at this point. Could it be that ThinkPHP on my computer doesn't work? I think it shouldn't be the case. I re-wrote an addition function and the result was normal. At this time, I started to wonder, was my last function written wrong? But after checking, I found it was correct! Later, I slowly started checking files one by one, and finally I discovered the reason:
Among the folders automatically generated by ThinkPHP, there is a folder called "Data", and there is a "_fields" folder below. This folder stores the relevant information in the data tables in each model, and also Even for mapping (my understanding), I checked one carefully and found that there are only two files with "'_autoinc' => true," and many others, similar to:
<?php return array ( 0 => 'id', 1 => 'title', 2 => 'content', 3 => 'publishedtime', 4 => 'userid', 5 => 'params', '_autoinc' => true, '_pk' => 'id', ); ?>
At this time, you can know the reason. A certain operation deleted part of the data. In this way, ThinkPHP cannot map the data when performing form verification, which leads to ThinkPHP errors and deletes them. After adding them in the order in the data table, run it again, and it's normal!
That’s it, this problem is solved~~~~
(The thinkPHP environment described in this article is an early version, users can refer to the corresponding directory when using the new version)
PS: Here are several formatting/beautifying/conversion tools recommended on this site to help you sort out the messy code. I believe everyone can use it in future development:
php code online formatting and beautification tool:
http://tools.jb51.net/code/phpformat
JavaScript code beautification/compression/formatting/encryption tool:
http://tools.jb51.net/code/jscompress
Online XML formatting/compression tool:
http://tools.jb51.net/code/xmlformat
JSON code formatting and beautification tool:
http://tools.jb51.net/code/json
Online XML/JSON conversion tool:
http://tools.jb51.net/code/xmljson
JSON code online formatting/beautifying/compressing/editing/conversion tool:
http://tools.jb51.net/code/jsoncodeformat
SQL code online formatting and beautification tool:
http://tools.jb51.net/code/sqlcodeformat
Readers who are interested in more thinkPHP-related content can check out the special topics on this site: "Introduction to ThinkPHP Tutorial", "Summary of Common Methods of ThinkPHP", "Summary of Cookie Usage in PHP", "Basic Tutorial for Getting Started with Smarty Templates" and "PHP Template technology summary".
I hope this article will be helpful to everyone’s PHP programming based on the ThinkPHP framework.