The examples in this article describe those things that are not explained in the ThinkPHP V2.2 documentation. Share it with everyone for your reference. The specific analysis is as follows:
The following is a summary of what is not mentioned and explained in detail in the documentation: (continuously updated in the future)
1. Set APP_DEBUG to true in the configuration file. When entering debug mode, the page will not display trace information by default.
Solution: 'SHOW_PAGE_TRACE'=>true Just add this.
The success method in 2.action only needs to store two parameters, success($message,$ajax=false), and the page being called will be displayed even if it is not written.
Solution: Add:
to the configuration file
'TMPL_ACTION_SUCCESS' => 'Public:success'(Error jump:'TMPL_ACTION_ERROR' => 'Public:success')
In fact, the default settings in version 2.2 are as follows:
'TMPL_ACTION_ERROR' => THINK_PATH.'/Tpl/dispatch_jump.html'.
3. Use the normal tag load template engine to ignore it directly.
Solution: None (the reason has not been found yet)
4. The __ROOT__ input in the template will only be empty characters. After the page jumps, you cannot use the __ROOT__ address to return to the homepage.
Solution: Modify __ROOT__ yourself, or add
5. The following problems may occur with the ThinkPHP framework on some servers:
The module cannot be loaded. This situation has nothing to do with whether the .htaccess file is set.
The problem lies in the getPathInfo method in ThinkPHPLibThinkUtilDispatcher.class.php
This method is to re-negative value in $_SERVER['PATH_INFO'], and the problem arises
$_SERVER['PATH_INFO'] $_SERVER['ORIG_PATH_INFO'] $_SERVER['REDIRECT_PATH_INFO'] $_SERVER["REDIRECT_URL"]
The above system variables may not exist. This is a pain in the ass, so getPathInfo will determine which ones exist and how to deal with them.
The problem lies in the operation after judging that there is $_SERVER["REDIRECT_URL"], original code:
$path = $_SERVER["REDIRECT_URI"]; if(empty($_SERVER['QUERY_STRING']) || $_SERVER['QUERY_STRING'] == $_SERVER["REDIRECT_QUERY_STRING"]) { $parsedUrl = parse_url($_SERVER["REQUEST_URL"]); if(!empty($parsedUrl['query'])) { $_SERVER['QUERY_STRING'] = $parsedUrl['query']; parse_str($parsedUrl['query'], $GET); $_GET = array_merge($_GET, $GET); reset($_GET); }else { unset($_SERVER['QUERY_STRING']); } reset($_SERVER); }
The one marked in red is the cause of the error. Change it to REQUEST_URI and it will be normal.
*Note: $_SERVER["REQUEST_URI"] gets the value after http://blog.lpreterite.com, including /
I hope this article will be helpful to everyone’s PHP programming based on ThinkPHP.