亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

CI框架教程之優化驗證碼機制詳解【驗證碼輔助函數】

2024-05-05 00:08:32
字體:
來源:轉載
供稿:網友

本文實例講述了CI框架教程之優化驗證碼機制。分享給大家供大家參考,具體如下:

驗證碼機制在CI框架中是通過一個輔助函數captcha()進行實現的——驗證碼輔助函數文件包含了一些幫助你創建驗證碼圖片的函數。。

那么我們如何使用CI的captcha()輔助函數來完成驗證碼功能呢?下面我會先講述如何使用CI的captcha()輔助函數來完成驗證碼功能,然后在講述如何具體的對CI框架的驗證碼機制進行優化。

1、CI框架驗證碼功能的使用

a)  首先我們要先加載輔助函數

加載輔助函數一共有兩種方法:

①、自動加載

我們可以在根文件目錄下的 “application/config/autoload.php” 文件中進行設置自動加載。

//ci框架設置自動加載輔助函數//captcha驗證碼復制函數$autoload['helper'] = array('url','captcha');

由于我們的項目使用驗證碼的地方非常有限,故而不推薦使用自動加載這種方法,我們可以在使用到的地方加載使用就可以了。

②、在使用到的地方進行加載

這種方法我們還是比較推薦的,消耗資源較少,效率會稍微的高一點。在你使用到驗證碼的控制器中寫一個構造函數,在構造函數中進行驗證碼輔助函數加載就可以了。

//構造函數public function __construct(){  //切記在控制器的構造函數中一定先繼承父類控制器的構造函數  parent::__construct();$this->load->helper('captcha');}

b) 然后使用驗證碼輔助函數創建驗證碼

$vals = array(    'word'     => 'Random word',    //驗證碼上顯示的字符,可以寫成函數,例如:rand(100000,999999)      'img_path'   => './data/captcha/',  //驗證碼保存路徑      'img_url'    => base_url('data/captcha'),    //驗證碼圖片url      'font_path'   => './path/to/fonts/texb.ttf',    //驗證碼上字體      'img_width'   => '150',    //驗證碼圖片寬度      'img_height'  => 30,      //驗證碼圖片高度      'expiration'  => 7200,     //驗證碼圖片刪除時間      'word_length'  => 8,      //驗證碼長度      'font_size'   => 16,      //驗證碼字體大小      'img_id'    => 'Imageid',      'pool'     => '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',      'colors'    => array(              'background' => array(255, 255, 255),            'border' => array(255, 255, 255),            'text' => array(0, 0, 0),            'grid' => array(255, 40, 40)      ),);$cap = create_captcha($vals);var_dump($cap);

這樣驗證碼就創建完成,img_path和img_url這倆個參數必須存在,并且,img_path所表示的路徑文件夾必須存在,不然的話創建驗證碼不會成功。由于每創建一次驗證碼就會生成一張圖片放到你設置的文件夾中,這樣是非常消耗資源的,故此我們要對CI框架的驗證碼功能進行優化。

2、CI框架驗證碼的優化

優化思路:①、我們不讓框架生成的圖片進行保存到服務器中;②、我們只保留驗證碼的的內容即可。

要想對驗證碼功能進行優化,我們就要對驗證碼輔助函數功能進行擴展。

a)  擴展驗證碼輔助函數

首先將根目錄下 “system/helpers/captcha_helper.php” 文件復制一份到根目錄下 "application/helpers" 目錄下,命名為 "MY_captcha_helper.php" ;

然后將下面代碼注釋掉(大概在96行到119行);

if ($img_path === '' OR $img_url === '' OR ! is_dir($img_path) OR ! is_really_writable($img_path) OR ! extension_loaded('gd')){    return FALSE;}// -----------------------------------// Remove old images// -----------------------------------$now = microtime(TRUE);$current_dir = @opendir($img_path);while ($filename = @readdir($current_dir)){    if (substr($filename, -4) === '.jpg' && (str_replace('.jpg', '', $filename) + $expiration) < $now)    {        @unlink($img_path.$filename);    }}@closedir($current_dir);

此段代碼防止你沒有傳遞img_path和img_url參數以及參數所指的文件夾不存在就暫停執行函數。

再次注釋代碼(大概在318行到335行)

$img_url = rtrim($img_url, '/').'/';if (function_exists('imagejpeg')){    $img_filename = $now.'.jpg';    imagejpeg($im, $img_path.$img_filename);}elseif (function_exists('imagepng')){    $img_filename = $now.'.png';    imagepng($im, $img_path.$img_filename);}else{    return FALSE;}$img = '<img '.($img_id === '' ? '' : 'id="'.$img_id.'"').' src="'.$img_url.$img_filename.'" style="width: '.$img_width.'; height: '.$img_height .'; border: 0;" style="margin: 0px; padding: 0px; outline: none; line-height: 25.2px; font-size: 14px; width: 660px; overflow: hidden; clear: both; font-family: tahoma, arial, "Microsoft YaHei";">	
//直接輸出header("Content-Type:image/jpeg");   //加入圖片格式header頭imagejpeg($im);ImageDestroy($im);//返回生成的驗證碼字符串,如果需要其他參數的話也可以加入返回return $word;//return array('word' => $word, 'time' => $now, 'image' => $img, 'filename' => $img_filename);

b) 應用擴展優化之后的驗證碼功能

首先在控制器中寫一個生成驗證碼方法;

然后在方法中進行調用驗證碼輔助函數,生成驗證碼;

最后在前臺進行調用方法,并實現點擊刷新功能。

生成驗證碼函數代碼:

//生成驗證碼public function code(){    //調用函數生成驗證碼,上述的參數也可以繼續使用    $vals = array(        'word_length' => 6,    );    create_captcha($vals);}

前臺調用餅實時刷新調用:

<td colspan="2" align="right">  <img src="<?php echo site_url('admin/privilege/code');?>" alt="" onclick= this.src="<?php echo site_url('admin/privilege/code').'/'?>"+Math.random() style="cursor: pointer;" title="看不清?點擊更換另一個驗證碼。"/></td>

至此,CI框架的驗證碼功能機制優化我們就完成了。

希望本文所述對大家基于CodeIgniter框架的PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97视频在线观看免费高清完整版在线观看| 国产脚交av在线一区二区| 91精品久久久久久久久久入口| 中文字幕日韩在线观看| 午夜精品福利电影| 国产精品免费看久久久香蕉| 久久久久久国产精品三级玉女聊斋| 久久久精品视频成人| 国产丝袜一区视频在线观看| 国产日韩欧美视频| 亚洲精品短视频| 一区二区成人精品| 亚洲第一国产精品| 国产精品日韩专区| 精品视频在线观看日韩| 国产精品第10页| 亚洲女人天堂视频| 中文字幕日韩av| 欧美性猛交丰臀xxxxx网站| 欧美高清不卡在线| 亚洲人成伊人成综合网久久久| 成人中文字幕+乱码+中文字幕| 欧美亚洲另类在线| 热99精品里视频精品| 日韩欧美在线视频免费观看| 亚洲综合av影视| 中文字幕欧美亚洲| 久久久久九九九九| 亚洲天堂av高清| 伊人久久精品视频| 日韩人体视频一二区| 国产原创欧美精品| 国语自产精品视频在免费| 色午夜这里只有精品| 亚洲图片欧美日产| 国产99久久精品一区二区 夜夜躁日日躁| 亚洲系列中文字幕| 蜜臀久久99精品久久久久久宅男| 久久人91精品久久久久久不卡| 国产精品美女999| 国产精品久久不能| 久久天天躁狠狠躁夜夜躁| 成人做爽爽免费视频| 亚洲免费人成在线视频观看| 亚洲国产高清高潮精品美女| 精品成人国产在线观看男人呻吟| 亚洲午夜久久久久久久| 久久久亚洲福利精品午夜| 欧美日韩免费网站| 中文字幕精品一区久久久久| 久久99久久亚洲国产| 91超碰caoporn97人人| 久久久久久久久久国产| 久久精品男人天堂| 黑人巨大精品欧美一区二区一视频| 日韩av资源在线播放| 国产精品午夜一区二区欲梦| 最近中文字幕日韩精品| 久久视频中文字幕| 国产精品电影一区| 欧美激情在线观看| 亚洲成人久久一区| 色av中文字幕一区| 亚洲自拍偷拍区| 亚洲国产中文字幕在线观看| 91精品国产高清久久久久久久久| 欧美性生活大片免费观看网址| 欧美高清videos高潮hd| 国产精品成人va在线观看| 亚洲免费伊人电影在线观看av| 综合欧美国产视频二区| 欧美日韩亚洲高清| 中文字幕亚洲综合| 欧美贵妇videos办公室| 日韩精品在线播放| 精品女同一区二区三区在线播放| 国产最新精品视频| 黑人精品xxx一区一二区| 久久久久九九九九| 欧美性受xxxx黑人猛交| 国产精品日韩在线播放| 亚洲高清在线观看| 91九色国产视频| 亚洲福利视频久久| 青青青国产精品一区二区| 成人福利在线观看| 亚洲国产精品成人精品| 国产日韩欧美夫妻视频在线观看| 久久久欧美一区二区| 欧美成aaa人片在线观看蜜臀| 国产精品九九久久久久久久| 91日本在线视频| 国产精品久久久久99| 成人免费自拍视频| 久久精品99国产精品酒店日本| 中文字幕免费精品一区高清| 国产精选久久久久久| 国产欧美一区二区三区久久人妖| 亚洲国产精品久久精品怡红院| 亚洲人a成www在线影院| 在线电影av不卡网址| 久久久精品国产一区二区| 国产91精品在线播放| 亚州欧美日韩中文视频| 日韩在线视频线视频免费网站| 国产精品自拍偷拍视频| 欧美激情区在线播放| 久久精品男人天堂| 久久久久久国产精品久久| 国产精品一区二区在线| 国产一区二区三区在线| 九九热99久久久国产盗摄| 日韩av毛片网| 国产丝袜视频一区| 精品国产鲁一鲁一区二区张丽| 国产精品综合不卡av| 亚洲欧美中文日韩在线| 国产精品视频网站| 中文字幕久精品免费视频| 精品国产乱码久久久久久婷婷| 欧美激情中文字幕乱码免费| 国产精品久久久久久av下载红粉| 亚洲午夜久久久影院| 97国产真实伦对白精彩视频8| 亚洲综合中文字幕在线| 欧美成年人视频| 一区二区欧美激情| 欧美成人免费在线视频| 丝袜美腿精品国产二区| 久久久中精品2020中文| 国产亚洲精品一区二区| 98精品国产高清在线xxxx天堂| 91精品国产综合久久香蕉| 精品毛片网大全| 2019中文在线观看| 欧美www视频在线观看| 国产97在线亚洲| 国产一区二区丝袜高跟鞋图片| 欧美影院在线播放| 欧美日韩美女视频| 日韩av免费看| 欧美老女人性视频| 亚洲一区二区久久久久久| 欧美大全免费观看电视剧大泉洋| 欧美精品免费播放| 91超碰中文字幕久久精品| 亚洲视频精品在线| 日本韩国欧美精品大片卡二| 欧美激情日韩图片| 欧美午夜精品久久久久久浪潮| 久久免费高清视频| 欧美极品在线播放| 国产视频精品免费播放| xvideos亚洲| 亚洲综合在线中文字幕| 精品女同一区二区三区在线播放| 理论片在线不卡免费观看| 亚洲国产私拍精品国模在线观看| 456国产精品| 亚洲女人天堂成人av在线| 欧美黄色性视频| 欧美日韩中文在线观看| 亚洲国产欧美一区二区三区同亚洲| 欧美性猛交xxx|