亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

direktori cari
歡迎 目錄 快速參考圖 基本信息 服務(wù)器要求 許可協(xié)議 變更記錄 關(guān)于CodeIgniter 安裝 下載 CodeIgniter 安裝指導(dǎo) 從老版本升級 疑難解答 介紹 開始 CodeIgniter 是什么? CodeIgniter 速記表 支持特性 應(yīng)用程序流程圖 模型-視圖-控制器 架構(gòu)目標(biāo) 教程 內(nèi)容提要 加載靜態(tài)內(nèi)容 創(chuàng)建新聞條目 讀取新聞條目 結(jié)束語 常規(guī)主題 CodeIgniter URL 控制器 保留字 視圖 模型 輔助函數(shù) 使用 CodeIgniter 類庫 創(chuàng)建你自己的類庫 使用 CodeIgniter 適配器 創(chuàng)建適配器 創(chuàng)建核心系統(tǒng)類 鉤子 - 擴(kuò)展框架的核心 自動裝載資源 公共函數(shù) URI 路由 錯誤處理 緩存 調(diào)試應(yīng)用程序 以CLI方式運(yùn)行 管理應(yīng)用程序 處理多環(huán)境 PHP替代語法 安全 開發(fā)規(guī)范 類庫參考 基準(zhǔn)測試類 日歷類 購物車類 配置類 Email 類 加密類 文件上傳類 表單驗(yàn)證詳解 FTP 類 圖像處理類 輸入類 Javascript 類 語言類 裝載類 遷移類 輸出類 分頁類 模板解析器類 安全類 Session 類 HTML 表格類 引用通告類 排版類 單元測試類 URI 類 User-Agent 類 表單驗(yàn)證 XML-RPC 和 XML-RPC 服務(wù)器 Zip 編碼類 緩存適配器 適配器參考 適配器 數(shù)據(jù)庫類 Active Record 類 數(shù)據(jù)庫緩存類 自定義函數(shù)調(diào)用 數(shù)據(jù)庫配置 連接你的數(shù)據(jù)庫 數(shù)據(jù)庫快速入門例子代碼 字段數(shù)據(jù) 數(shù)據(jù)庫維護(hù)類 查詢輔助函數(shù) 數(shù)據(jù)庫類 查詢 生成查詢記錄集 表數(shù)據(jù) 事務(wù) 數(shù)據(jù)庫工具類 JavaScript類 輔助函數(shù)參考 數(shù)組輔助函數(shù) CAPTCHA 輔助函數(shù) Cookie Helper 日期輔助函數(shù) 目錄輔助函數(shù) 下載輔助函數(shù) Email 輔助函數(shù) 文件輔助函數(shù) 表單輔助函數(shù) HTML輔助函數(shù) Inflector 輔助函數(shù) 語言輔助函數(shù) 數(shù)字輔助函數(shù) 路徑輔助函數(shù) 安全輔助函數(shù) 表情輔助函數(shù) 字符串輔助函數(shù) 文本輔助函數(shù) 排版輔助函數(shù) URL 輔助函數(shù) XML 輔助函數(shù)
watak

CodeIgniter 用戶指南 版本 2.1.0

編輯文檔、查看近期更改請 登錄 或 注冊  找回密碼
查看原文

CAPTCHA 輔助函數(shù)

驗(yàn)證碼輔助函數(shù)用來生成圖片驗(yàn)證碼

加載輔助函數(shù)

用下面的代碼加載驗(yàn)證碼輔助函數(shù):

$this->load->helper('captcha');

可用的函數(shù)如下:

create_captcha($data)

根據(jù)你指定的一系列參數(shù)創(chuàng)建驗(yàn)證碼圖像, 返回值是一個(gè)包含此圖像數(shù)據(jù)的數(shù)組.

[array]
(
??'image' => IMAGE TAG
??'time' => TIMESTAMP (毫秒)
??'word' => CAPTCHA WORD
)

"image"是實(shí)際存在image標(biāo)記: <img src="http://example.com/captcha/12345.jpg" width="140" height="50" />

這里的"time"是一個(gè)毫秒級的時(shí)間戳,作為圖片文件名(不包含擴(kuò)展名). 就像這樣: 1139612155.3422

"word"是驗(yàn)證碼, 如果不提供, 將是一個(gè)隨機(jī)字符串.

使用驗(yàn)證碼輔助函數(shù):

加載后你可以向這樣產(chǎn)生一個(gè)驗(yàn)證碼:

$vals = array(
????'word' => 'Random word',
????'img_path' => './captcha/',
????'img_url' => 'http://example.com/captcha/',
????'font_path' => './path/to/fonts/texb.ttf',
????'img_width' => '150',
????'img_height' => 30,
????'expiration' => 7200
????);

$cap = create_captcha($vals);
echo $cap['image'];
  • 驗(yàn)證碼輔助函數(shù)必須需要GD庫.
  • 只有 img_path 和 img_url 參數(shù)是必須的.
  • 如果"word"未提供, 將自動產(chǎn)生一個(gè)ASCII字符串. 你也可以使用自己的詞庫,從里面隨機(jī)挑選.
  • 如果未提供TRUE TYPE字體的路徑, 將會使用GD自帶的字體.
  • "captcha" 目錄必須可寫(666, or 777)
  • "expiration" (秒) 指定了驗(yàn)證碼圖片的超時(shí)刪除時(shí)間. 默認(rèn)是2小時(shí).

配合數(shù)據(jù)庫

為了在提交表單時(shí)用到驗(yàn)證,你需要將create_captcha()生成的結(jié)果保存到數(shù)據(jù)庫。這樣,當(dāng)用戶提交表單時(shí),你就可以驗(yàn)證數(shù)據(jù)庫里是否有此驗(yàn)證碼或是否過期。

這是一個(gè)數(shù)據(jù)表的例子:

CREATE TABLE captcha (
?captcha_id bigint(13) unsigned NOT NULL auto_increment,
?captcha_time int(10) unsigned NOT NULL,
?ip_address varchar(16) default '0' NOT NULL,
?word varchar(20) NOT NULL,
?PRIMARY KEY `captcha_id` (`captcha_id`),
?KEY `word` (`word`)
);

這是一個(gè)使用數(shù)據(jù)庫的例子. 一個(gè)帶驗(yàn)證碼的頁面顯示如下:

$this->load->helper('captcha');
$vals = array(
????'img_path' => './captcha/',
????'img_url' => 'http://example.com/captcha/'
????);

$cap = create_captcha($vals);

$data = array(
????'captcha_time' => $cap['time'],
????'ip_address' => $this->input->ip_address(),
????'word' => $cap['word']
????);

$query = $this->db->insert_string('captcha', $data);
$this->db->query($query);

echo '提交下面的驗(yàn)證碼:';
echo $cap['image'];
echo '<input type="text" name="captcha" value="" />';

然后頁面提交后如下處理:

// 首先刪除舊的驗(yàn)證碼
$expiration = time()-7200; // 2小時(shí)限制
$this->db->query("DELETE FROM captcha WHERE captcha_time < ".$expiration);

// 然后再看是否有驗(yàn)證碼存在:
$sql = "SELECT COUNT(*) AS count FROM captcha WHERE word = ? AND ip_address = ? AND captcha_time > ?";
$binds = array($_POST['captcha'], $this->input->ip_address(), $expiration);
$query = $this->db->query($sql, $binds);
$row = $query->row();

if ($row->count == 0)
{
????echo "你必須提交圖像上顯示的驗(yàn)證碼";
}

?

翻譯貢獻(xiàn)者: CosyBoy, Hex, LSvKing, 杜建宇
最后修改: 2012-02-05 23:50:26
Artikel sebelumnya: Artikel seterusnya: