ThinkPHP驗(yàn)證碼和分頁(yè)實(shí)例教程
本文實(shí)例講述了ThinkPHP常用的兩個(gè)功能:驗(yàn)證碼與分頁(yè)。在ThinkPHP的項(xiàng)目開(kāi)發(fā)中非常常見(jiàn),具有很高的實(shí)用價(jià)值。完整實(shí)例分享給大家,供大家參考。具體如下:
一、驗(yàn)證碼:
導(dǎo)入驗(yàn)證碼類(lèi),在aoli\ThinkPHP\Lib\ORG\Util\Image.class.php里有驗(yàn)證碼方法
1.英文驗(yàn)證碼:
buildImageVerify($length,$mode,$type,$width,$height,$verifyName)
參數(shù)如下:
length :驗(yàn)證碼的長(zhǎng)度,默認(rèn)為 4 位數(shù)
mode :驗(yàn)證字符串的類(lèi)型,默認(rèn)為數(shù)字,其他支持類(lèi)型有 0 字母 1 數(shù)字 2 大寫(xiě)字母 3 小寫(xiě)字母 4
中文 5 混合(去掉了容易混淆的字符 oOLl 和數(shù)字 01 )
type :驗(yàn)證碼的圖片類(lèi)型,默認(rèn)為 png
width :驗(yàn)證碼的寬度,默認(rèn)會(huì)自動(dòng)根據(jù)驗(yàn)證碼長(zhǎng)度自動(dòng)計(jì)算
height :驗(yàn)證碼的高度,默認(rèn)為 22
verifyName :驗(yàn)證碼的 SESSION 記錄名稱(chēng),默認(rèn)為 verify
2.中文驗(yàn)證碼:
GBVerify ($length,$type,$width,$height,$fontface,$verifyName)
參數(shù)如下:
length :驗(yàn)證碼的長(zhǎng)度,默認(rèn)為 4 位數(shù)
type :驗(yàn)證碼的圖片類(lèi)型,默認(rèn)為 png
width :驗(yàn)證碼的寬度,默認(rèn)會(huì)自動(dòng)根據(jù)驗(yàn)證碼長(zhǎng)度自動(dòng)計(jì)算
height :驗(yàn)證碼的高度,默認(rèn)為 50
fontface :使用的字體文件,使用完整文件名或者放到圖像類(lèi)所在的目錄下面,默認(rèn)使用的字體文件是 simhei.ttf (該文件可以從 window 的 Fonts 目錄下面找到)
verifyName :驗(yàn)證碼的 SESSION 記錄名稱(chēng),默認(rèn)為 verify
3.如果無(wú)法顯示驗(yàn)證碼,請(qǐng)檢查:
①.PHP 是否已經(jīng)安裝 GD 庫(kù)支持;
②.輸出之前是否有任何的輸出(尤其是 UTF8 的 BOM 頭信息輸出);
③.Image 類(lèi)庫(kù)是否正確導(dǎo)入;
④.如果是中文驗(yàn)證碼檢查是否有拷貝字體文件到類(lèi)庫(kù)所在目錄;
4.action部分:
CommonAction.class.php頁(yè)面代碼如下:
<?php
class CommonAction extends Action{
function verify(){
import('ORG.Util.Image');
//英文驗(yàn)證碼
//Image::buildImageVerify(5,5,gif,90,30,'verify');
//中文驗(yàn)證碼
Image::GBVerify();
}
}
?>
5.view模板部分:
模板index.html頁(yè)面如下:
驗(yàn)證碼:<input type="text" name="verify" /><img src="__APP__/common/verify" onclick="show(this)" /><br />
<input type="submit" value="注冊(cè)" />
</form>
<script type="text/javascript">
function show(obj){
obj.src="__APP__/common/verify/random/"+Math.random();
}
</script>
6.控制器:
控制器UserAction.class.php如下:
//驗(yàn)證碼驗(yàn)證
if($_SESSION['verify']!=md5($_POST['verify'])){
$this->error('驗(yàn)證碼不正確');
}
二、分頁(yè):
1.導(dǎo)入分頁(yè)類(lèi),在aoli\ThinkPHP\Lib\ORG\Util\Page.class.php里有驗(yàn)證碼方法
2.action部分:
UserAction.class.php頁(yè)面如下:
function index(){
import('ORG.Util.Page');//引入分布類(lèi)
$user=M('user');
$count=$user->count();
$page=new Page($count,3);//一頁(yè)顯示5條
$page->setConfig('theme','<div style="font-weight:bold;">總共:%totalRow%%header% %nowPage%/%totalPage%頁(yè) %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模板部分:
模板頁(yè)index.html頁(yè)面如下:
<volist name="alist" id="vo">
<li><span>ID:</span>{$vo['id']}<span>用戶(hù)名:</span>{$vo['username']}<span>注冊(cè)ip:</span>{$vo['createip']}<a href="__URL__/del/id/{$vo['id']}">刪除</a> <a href="__URL__/edit/id/{$vo['id']}">編輯</a></li>
</volist>
{$page}
感興趣的讀者可以調(diào)試運(yùn)行一下本文ThinkPHP驗(yàn)證碼與分頁(yè)實(shí)例,相信會(huì)有新的收獲。
- ThinkPHP5.0框架驗(yàn)證碼功能實(shí)現(xiàn)方法【基于第三方擴(kuò)展包】
- thinkPHP5.0框架驗(yàn)證碼調(diào)用及點(diǎn)擊圖片刷新簡(jiǎn)單實(shí)現(xiàn)方法
- 完美解決thinkphp驗(yàn)證碼出錯(cuò)無(wú)法顯示的方法
- ThinkPHP驗(yàn)證碼使用簡(jiǎn)明教程
- ThinkPHP打開(kāi)驗(yàn)證碼頁(yè)面顯示亂碼的解決方法
- thinkphp3.2點(diǎn)擊刷新生成驗(yàn)證碼
- 詳解ThinkPHP3.2.3驗(yàn)證碼顯示、刷新、校驗(yàn)
- thinkphp自帶驗(yàn)證碼全面解析
- thinkPHP中驗(yàn)證碼的簡(jiǎn)單實(shí)現(xiàn)方法
- ThinkPHP3.2.1圖片驗(yàn)證碼實(shí)現(xiàn)方法
- tp5(thinkPHP5框架)captcha驗(yàn)證碼配置及驗(yàn)證操作示例
相關(guān)文章
PHP隨機(jī)生成18位不重復(fù)的訂單號(hào)代碼實(shí)例
這篇文章主要介紹了PHP隨機(jī)生成18位不重復(fù)的訂單號(hào)代碼實(shí)例,代碼很簡(jiǎn)單但是很實(shí)用,有需要的同學(xué)可以參考下2021-03-03
PHP命令空間namespace及use的用法小結(jié)
命名空間一個(gè)最明確的目的就是解決重名問(wèn)題,PHP中不允許兩個(gè)函數(shù)或者類(lèi)出現(xiàn)相同的名字,否則會(huì)產(chǎn)生一個(gè)致命的錯(cuò)誤。這篇文章主要介紹了PHP命令空間namespace及use的用法實(shí)踐總結(jié),需要的朋友可以參考下2017-11-11
php die()與exit()的區(qū)別實(shí)例詳解
php中die()與exit()的真正區(qū)別是什么因,我們百度一下發(fā)現(xiàn)die是退出并釋放內(nèi)存,exit是退出但不釋放內(nèi)存了,那么真的是這樣嗎,需要的朋友可以參考下2016-12-12

