本文實例講述了ThinkPHP常用的兩個功能:驗證碼與分頁。在ThinkPHP的項目開發中非常常見,具有很高的實用價值。完整實例分享給大家,供大家參考。具體如下:
一、驗證碼:
導入驗證碼類,在aoli\ThinkPHP\Lib\ORG\Util\Image.class.php里有驗證碼方法
1.英文驗證碼:
1
|
buildImageVerify( $length , $mode , $type , $width , $height , $verifyName ) |
參數如下:
length :驗證碼的長度,默認為 4 位數
mode :驗證字符串的類型,默認為數字,其他支持類型有 0 字母 1 數字 2 大寫字母 3 小寫字母 4
中文 5 混合(去掉了容易混淆的字符 oOLl 和數字 01 )
type :驗證碼的圖片類型,默認為 png
width :驗證碼的寬度,默認會自動根據驗證碼長度自動計算
height :驗證碼的高度,默認為 22
verifyName :驗證碼的 SESSION 記錄名稱,默認為 verify
2.中文驗證碼:
1
|
GBVerify ( $length , $type , $width , $height , $fontface , $verifyName ) |
參數如下:
length :驗證碼的長度,默認為 4 位數
type :驗證碼的圖片類型,默認為 png
width :驗證碼的寬度,默認會自動根據驗證碼長度自動計算
height :驗證碼的高度,默認為 50
fontface :使用的字體文件,使用完整文件名或者放到圖像類所在的目錄下面,默認使用的字體文件是 simhei.ttf (該文件可以從 window 的 Fonts 目錄下面找到)
verifyName :驗證碼的 SESSION 記錄名稱,默認為 verify
3.如果無法顯示驗證碼,請檢查:
①.PHP 是否已經安裝 GD 庫支持;
②.輸出之前是否有任何的輸出(尤其是 UTF8 的 BOM 頭信息輸出);
③.Image 類庫是否正確導入;
④.如果是中文驗證碼檢查是否有拷貝字體文件到類庫所在目錄;
4.action部分:
CommonAction.class.php頁面代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php class CommonAction extends Action{ function verify(){ import( 'ORG.Util.Image' ); //英文驗證碼 //Image::buildImageVerify(5,5,gif,90,30,'verify'); //中文驗證碼 Image::GBVerify(); } } ?> |
5.view模板部分:
模板index.html頁面如下:
1
2
3
4
5
6
7
8
9
|
驗證碼:< input type = "text" name = "verify" />< img src = "__APP__/common/verify" onclick = "show(this)" />< br /> < input type = "submit" value = "注冊" /> </ form > < script type = "text/javascript" > function show(obj){ obj.src="__APP__/common/verify/random/"+Math.random(); } </ script > |
6.控制器:
控制器UserAction.class.php如下:
1
2
3
4
|
//驗證碼驗證 if ( $_SESSION [ 'verify' ]!=md5( $_POST [ 'verify' ])){ $this ->error( '驗證碼不正確' ); } |
二、分頁:
1.導入分頁類,在aoli\ThinkPHP\Lib\ORG\Util\Page.class.php里有驗證碼方法
2.action部分:
UserAction.class.php頁面如下:
1
2
3
4
5
6
7
8
9
10
11
12
|
function index(){ import( 'ORG.Util.Page' ); //引入分布類 $user =M( 'user' ); $count = $user -> count (); $page = new Page( $count ,3); //一頁顯示5條 $page ->setConfig( 'theme' , '<div style="font-weight:bold;">總共:%totalRow%%header% %nowPage%/%totalPage%頁 %first% %upPage% %prePage% %linkPage% %nextPage% %downPage% %end%</div>' ); $show = $page ->show(); $list = $user ->field( array ( 'id' , 'username' , 'createip' ))->order( 'id desc' )->limit( $page ->firstRow. ',' . $page ->listRows)->select(); $this ->assign( 'alist' , $list ); $this ->assign( 'page' , $show ); $this ->display(); } |
3.view模板部分:
模板頁index.html頁面如下:
1
2
3
4
|
< volist name = "alist" id = "vo" > < li >< span >ID:</ span >{$vo['id']}< span >用戶名:</ span >{$vo['username']}< span >注冊ip:</ span >{$vo['createip']}< a href = "__URL__/del/id/{$vo['id']}" >刪除</ a > < a href = "__URL__/edit/id/{$vo['id']}" >編輯</ a ></ li > </ volist > {$page} |
感興趣的讀者可以調試運行一下本文ThinkPHP驗證碼與分頁實例,相信會有新的收獲。