第三天 ThinkPHP手把手快速拼接網站(三)
6月1日,小雨。“ 梅子金黃杏子肥,麥花雪白菜花稀。 日長籬落無人過,唯有蜻蜓蛺蝶飛。”
七、MVC模式
ThinkPHP的MVC開發機制如下:
M
Model層 模型:就是資料庫操作類(通過資料庫操作類去操作各個表)。
V View層 檢視:指模版。
C Controller層 控制器:就是通過控制器來實現模版,模型之間的控制關係。
MVC架構中,Controller是必須的,因為controller掌管著業務邏輯的控制權。通常的流程是:請求從入口檔案進入,然後就經過路由匹配,最後把控制權交到相應的controller上,開始處理業務,model和view的呼叫都由controller的程式碼決定。換句話說,在Controller中可以不用Model和V
八、後臺編寫
1、 修改admin/Lib/Action/IndexAction.class.php,如下:
<?php // 本類由系統自動生成,僅供測試用途 class IndexAction extends Action { public function index() { if (session ( '?username' )) { } else { $this->error ( '親,您好,請先登入!', U ( '/Login/index/' ) ); } } }
程式碼說明:
要判斷一個session值是否已經設定,可以使用 session('?name'); 用於判斷名稱為name的session值是否已經設定 相當於: isset($_SESSION['name']);
U ( '/Login/index/' )的含義是找Login模組下的index方法。
2、編寫admin\Lib\Action\LoginAction.class.php
<?php class LoginAction extends Action { function index() { // 配置頁面顯示內容 $this->assign ( 'title', '後臺管理系統' ); $this->display (); } }
在Action中使用assign方法可以給模板變數賦值,那麼使用內建的模板引擎輸出變數,只需要在模版檔案使用:{$title},模板編譯後的結果就是<?php echo ($title); ?>,最後執行的時候就可以在標籤位置顯示ThinkPHP的輸出結果。
注意模板標籤的{和$之間不能有任何的空格,否則標籤無效。
3、編寫admin\Tpl\Login\index.html
直接把後臺模板,admin-templates.rar裡面的login.html裡面的全部內容拷入。
前後臺模板下載地址:http://download.csdn.net/detail/zwszws/8773601
把下載的前端模板裡面資料夾css、images和scripts裡面的檔案全部分別放入public\Css\admin和\public\Images\admin以及\publicJs\admin裡面.
修改index.html檔案裡的相關資源路徑,如:
<link rel="stylesheet" href="__PUBLIC__/Css/admin/reset.css"
<script type="text/javascript" src="__PUBLIC__/Js/admin/jquery-1.3.2.min.js"></script>
<img id="logo" src="__PUBLIC__/Images/admin/logo.png" alt="Simpla Admin logo" />
4、再次訪問:http://localhost/MyFirstThinkPHP_1/admin.php ,呵呵,後臺登入頁面出來了!
5、加個驗證碼
修改admin\Tpl\Login\index.html檔案,加入
<p>
<label>驗證碼</label>
<input class="text-input" type="text" name="verify"/>
<img src="__APP__/Common/verify" onclick="show(this)"/>
</p>
<script>
function show(obj){
obj.src="__APP__/Common/verify";
}
</script>
編寫admin\Lib\Action\CommonAction.class.php
<?php
class CommonAction extends Action{
function verify(){
//匯入驗證碼類
import("ORG.Util.Image");
/*
* 引數1:驗證碼長度,預設4
* 引數2:型別,0為字母,1為數字,2為大寫字母,3為小寫字母,4為中文
* 引數3:圖片型別,預設png格式,若伺服器沒有開PNG,就改成其他格式
* 引數4:圖片寬度(根據長度自動計算)
* 引數5:圖片高度,預設22個畫素
* 引數6:驗證碼儲存在Session的名稱 'verify'
*/
Image::buildImageVerify(4,1,'png',70,30);//靜態方法
}
}
?>
4、再次訪問:http://localhost/MyFirstThinkPHP_1/admin.php ,呵呵,驗證碼出來了!