国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > ThinkPHP > 正文

ThinkPHP 驗證碼詳解及實例

2024-09-09 15:20:08
字體:
來源:轉載
供稿:網友

ThinkPHP 內置了驗證碼的支持,可以直接使用,要使用驗證碼,需要導入擴展類庫中的 ORG.Util.Image 類庫和 ORG.Util.String 類庫.

驗證碼方法

我們通過在在模塊類中增加一個 verify 方法來用于顯示驗證碼,最簡單的例子:

  1. Public function verify(){ 
  2. // 導入Image類庫 
  3. import("ORG.Util.Image"); 
  4. Image::buildImageVerify(); 

import 方法是 ThinkPHP 內置的類庫和文件導入方法,上例導入的文件為 ThinkPHP 系統目錄下 Lib/ORG/Util/Image.class.php 文件,如果已經將 Image 類庫拷貝到了當前項目下,如 Lib/ORG 下,則可以以:

import("@.Util.Image");

方式導入,具體可參見《ThinkPHP import 類庫導入》.

import 方法是 ThinkPHP 內置的類庫和文件導入方法,上例導入的文件為 ThinkPHP 系統目錄下 Lib/ORG/Util/Image.class.php 文件.

訪問驗證碼

可以直接在瀏覽器里訪問該驗證碼方法以確定驗證碼是否能正常顯示:

http://127.0.0.1/index.php/Public/verify

表單中使用驗證碼

在表單頁面中使用驗證碼,是以 html img標簽 來調用:

  1. <input type="text" name="verify"
  2. <img id="verifyImg" src="__URL__-verify" onClick="changeVerify()" title="點擊刷新驗證碼" /> 

src 屬性值即為驗證碼方法訪問地址,視實際情況不同而不同.

驗證碼刷新

當點擊驗證碼圖片時,觸發 JavaScript changeVerify() 函數重新讀取驗證碼,從而實現驗證碼刷新,該函數參考如下:

  1. <script language="JavaScript"
  2. function changeVerify(){ 
  3. var timenow = new Date().getTime(); 
  4. document.getElementByIdx_x('verifyImg').src='__URL__/verify/'+timenow; 
  5. </script> 

驗證碼驗證

在調用驗證碼 verify 的時候,buildImageVerify 會記錄本次驗證碼的 MD5 信息,在表單驗證操作里,以如下方法來檢查驗證碼是否正確:

  1. if($_SESSION['verify'] != md5($_POST['verify'])) 
  2. $this->error('驗證碼錯誤!'); 

其中 $_SESSION['verify'] 中的 verify 名稱為 buildImageVerify 方法默認 SESSION 注冊名稱,具體見 buildImageVerify 語法.

上面例子演示了最簡單的 ThinkPHP 驗證碼的使用方法,上面的例子驗證碼是 4 位數字.

驗證碼不顯示原因

如下發現無法顯示驗證碼,可能的原因如下:

PHP 是否已經安裝 GD 庫支持,了解更多 GD 庫信息參見《PHP 圖像處理》GD庫部分.

輸出之前是否有任何的輸出(尤其是 UTF8 的 BOM 頭信息輸出).

Image 類庫是否正確導入,如果是表單頁面,請查看是否正確調用了驗證碼顯示方法.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 卓资县| 闸北区| 玛曲县| 连平县| 垫江县| 佛冈县| 聂拉木县| 芜湖市| 兴文县| 孝义市| 镶黄旗| 宁陕县| 永靖县| 民县| 夏津县| 绵竹市| 邵东县| 大连市| 榕江县| 和龙市| 仪陇县| 永和县| 秭归县| 隆安县| 高陵县| 乌什县| 泽州县| 绥滨县| 蓝山县| 山东| 元氏县| 嘉善县| 岳阳县| 新邵县| 莱西市| 峨山| 太康县| 桦南县| 阆中市| 桐乡市| 灵山县|