1. 程式人生 > >第三天 ThinkPHP手把手快速拼接網站(三)

第三天 ThinkPHP手把手快速拼接網站(三)

        6月1日,小雨。“ 梅子金黃杏子肥,麥花雪白菜花稀。 日長籬落無人過,唯有蜻蜓蛺蝶飛。”

     七、MVC模式

       ThinkPHP的MVC開發機制如下:

      M  Model層    模型:就是資料庫操作類(通過資料庫操作類去操作各個表)。       
       V  View層     檢視:指模版。     
       C  Controller層  控制器:就是通過控制器來實現模版,模型之間的控制關係。

     MVC架構中,Controller是必須的,因為controller掌管著業務邏輯的控制權通常的流程是:請求從入口檔案進入,然後就經過路由匹配,最後把控制權交到相應的controller上,開始處理業務,model和view的呼叫都由controller的程式碼決定。換句話說,在Controller中可以不用Model和V

iew,只是這樣一來,就表示你的這個業務不與資料庫互動(Model),也不產生任何表現性的輸出(View)。

      八、後臺編寫

       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  ,呵呵大笑,驗證碼出來了!