ThinkPHP V2.2說明文檔沒有說明的那些事執行個體小結_php執行個體

來源:互聯網
上載者:User
本文執行個體講述了ThinkPHP V2.2說明文檔沒有說明的那些事。分享給大家供大家參考。具體分析如下:

以下是總結一下說明文檔沒有提及和詳細說明的內容:(日後不斷更新)

1. 在設定檔中設定了APP_DEBUG為true,進入debug模式的時候,頁面預設是不會顯示trace資訊資訊的。

解決方案:'SHOW_PAGE_TRACE'=>true 加上這個就可以了。

2.action 內的success 方法只需要存入兩個參數 success($message,$ajax=false),調用的頁面是沒寫也會顯示。

解決方案:要在設定檔中加上:
'TMPL_ACTION_SUCCESS' => 'Public:success'(錯誤跳轉:'TMPL_ACTION_ERROR' => 'Public:success')

其實2.2版本中預設設定是這樣的:

'TMPL_ACTION_ERROR' => THINK_PATH.'/Tpl/dispatch_jump.html'。

3.用普通標籤load模板引擎直接無視。

解決方案:無(還沒找到原因)

4.__ROOT__在模板輸入只會是Null 字元,在頁面跳轉後就不能用__ROOT__地址回到首頁了。

解決方案:自己去修改__ROOT__,又或者在所有頁面中加上, 如:

5.有些伺服器上ThinkPHP架構會出現以下問題:

無法載入模組,這情況在是否有設定.htaccess檔案無關。

問題在於ThinkPHP\Lib\Think\Util\Dispatcher.class.php中的getPathInfo方法中

此方法是重新負值於$_SERVER['PATH_INFO'],問題就來了

$_SERVER['PATH_INFO']$_SERVER['ORIG_PATH_INFO']$_SERVER['REDIRECT_PATH_INFO']$_SERVER["REDIRECT_URL"]

以上的系統變數不一定有,這個是全蛋疼的事,所以getPathInfo會一路判斷有哪個就要怎麼處理什麼的。

出問題的地方在於判斷有$_SERVER["REDIRECT_URL"]之後的操作,原碼:

$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);}

標成紅色的就是出錯的原因,改成REQUEST_URI就會正常的了。

*註:$_SERVER["REQUEST_URI"] 擷取http://blog.lpreterite.com後面的值,包括/

希望本文所述對大家基於ThinkPHP的php程式設計有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.