thinkPHP中驗(yàn)證碼的簡(jiǎn)單實(shí)現(xiàn)方法
本文實(shí)例講述了thinkPHP中驗(yàn)證碼的簡(jiǎn)單實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
運(yùn)行效果圖如下:

1.php端生成驗(yàn)證碼函數(shù)
public function verify(){
// 驗(yàn)證碼
import("@.Util.Image");
Image::buildImageVerify(4,1,'png',40,20,'verify');
}
/**
* 生成圖像驗(yàn)證碼
* @static
* @access public
* @param string $length 位數(shù)
* @param string $mode 類型
* @param string $type 圖像格式
* @param string $width 寬度
* @param string $height 高度
* @return string
*/
static function buildImageVerify($length=4, $mode=1, $type='png', $width=48, $height=22, $verifyName='verify') {
import('ORG.Util.String');
$randval = String::randString($length, $mode);
session($verifyName, md5($randval));
$width = ($length * 10 + 10) > $width ? $length * 10 + 10 : $width;
if ($type != 'gif' && function_exists('imagecreatetruecolor')) {
$im = imagecreatetruecolor($width, $height);
} else {
$im = imagecreate($width, $height);
}
$r = Array(225, 255, 255, 223);
$g = Array(225, 236, 237, 255);
$b = Array(225, 236, 166, 125);
$key = mt_rand(0, 3);
$backColor = imagecolorallocate($im, $r[$key], $g[$key], $b[$key]); //背景色(隨機(jī))
$borderColor = imagecolorallocate($im, 100, 100, 100); //邊框色
imagefilledrectangle($im, 0, 0, $width - 1, $height - 1, $backColor);
imagerectangle($im, 0, 0, $width - 1, $height - 1, $borderColor);
$stringColor = imagecolorallocate($im, mt_rand(0, 200), mt_rand(0, 120), mt_rand(0, 120));
// 干擾
for ($i = 0; $i < 10; $i++) {
imagearc($im, mt_rand(-10, $width), mt_rand(-10, $height), mt_rand(30, 300), mt_rand(20, 200), 55, 44, $stringColor);
}
for ($i = 0; $i < 25; $i++) {
imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $stringColor);
}
for ($i = 0; $i < $length; $i++) {
imagestring($im, 5, $i * 10 + 5, mt_rand(1, 8), $randval{$i}, $stringColor);
}
Image::output($im, $type);
}
生成圖片的同時(shí),傳入到session中。
2.頁(yè)面端
<img id="verifyImg" src="{sh::U('Agent/Login/verify')}" onClick="changeVerify()" title="點(diǎn)擊刷新驗(yàn)證碼" /></div>
直接src中調(diào)用。
點(diǎn)擊觸發(fā)改變。
function changeVerify(){
verifyURL = "{sh::U('Agent/Login/verify')}";
$("#verifyImg").attr("src",verifyURL);
return false;
}
3.后臺(tái)驗(yàn)證,對(duì)比post字段與session中的驗(yàn)證碼是否一致。
if($_SESSION['verify'] != md5($_POST['verify'])) {
$this->error('驗(yàn)證碼錯(cuò)誤!');
}
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門教程》、《smarty模板入門基礎(chǔ)教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
- ThinkPHP5.1驗(yàn)證碼功能實(shí)現(xiàn)的示例代碼
- ThinkPHP5&5.1實(shí)現(xiàn)驗(yàn)證碼的生成、使用及點(diǎn)擊刷新功能示例
- thinkphp5.1驗(yàn)證碼及驗(yàn)證碼驗(yàn)證功能的實(shí)現(xiàn)詳解
- tp5(thinkPHP5框架)captcha驗(yàn)證碼配置及驗(yàn)證操作示例
- thinkPHP5.0框架驗(yàn)證碼調(diào)用及點(diǎn)擊圖片刷新簡(jiǎn)單實(shí)現(xiàn)方法
- thinkPHP框架實(shí)現(xiàn)的短信接口驗(yàn)證碼功能示例
- thinkPHP實(shí)現(xiàn)的驗(yàn)證碼登錄功能示例
- 詳解ThinkPHP3.2.3驗(yàn)證碼顯示、刷新、校驗(yàn)
- thinkphp自帶驗(yàn)證碼全面解析
- Thinkphp極驗(yàn)滑動(dòng)驗(yàn)證碼實(shí)現(xiàn)步驟解析
相關(guān)文章
利用laravel+ajax實(shí)現(xiàn)文件上傳功能方法示例
最近在做的項(xiàng)目基于Laravel開發(fā),需要用到Ajax上傳,查了些資料,自己整理了下可用的方法。下面這篇文章主要給大家介紹了關(guān)于利用laravel+ajax實(shí)現(xiàn)文件上傳功能的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-08-08
PHP實(shí)現(xiàn)阿里大魚短信驗(yàn)證的實(shí)例代碼
本篇文章主要介紹了PHP實(shí)現(xiàn)阿里大魚短信驗(yàn)證的實(shí)例代碼的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
php制作動(dòng)態(tài)隨機(jī)驗(yàn)證碼
這篇文章主要介紹了php制作動(dòng)態(tài)隨機(jī)驗(yàn)證碼的方法的相關(guān)資料,需要的朋友可以參考下2015-02-02
php 遍歷目錄,生成目錄下每個(gè)文件的md5值并寫入到結(jié)果文件中
本文章向大家介紹php遍歷目錄,生成目錄下每個(gè)文件的md5值并寫入到結(jié)果文件中,需要的朋友可以參考下2016-12-12
php fsockopen解決辦法 php實(shí)現(xiàn)多線程
有沒有辦法在php中實(shí)現(xiàn)多線程呢?假設(shè)你正在寫一個(gè)基于多臺(tái)服務(wù)器的php應(yīng)用,理想的情況時(shí)同時(shí)向多臺(tái)服務(wù)器發(fā)送請(qǐng)求,而不是一臺(tái)接一臺(tái)??梢詫?shí)現(xiàn)嗎?回答是當(dāng)然可以,下面看解決方法2014-01-01
php 文件下載 出現(xiàn)下載文件內(nèi)容亂碼損壞的解決方法(推薦)
下面小編就為大家?guī)硪黄猵hp 文件下載 出現(xiàn)下載文件內(nèi)容亂碼損壞的解決方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11
PHP使用Memcache時(shí)模擬命名空間及緩存失效問題的解決
這篇文章主要介紹了PHP使用Memcache時(shí)模擬命名空間及緩存失效問題的解決,這里談到的緩存失效主要針對(duì)高并發(fā)場(chǎng)景下取不到緩存的情況,需要的朋友可以參考下2016-02-02

