首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

ThinkPHP 3.1 驗證碼極簡實作(Image 類庫)

     編輯:PHP 綜合知識

控制器方法

public function verify() {
    import('ORG.Util.Image');
    ob_clean(); // 清除先前輸出,避免圖片損壞
    Image::buildImageVerify();
}

視圖引用

<img src="__APP__/Index/verify/" 
     onclick="this.src=this.src+'?'+Math.random()" 
     alt="點擊刷新" 
     style="cursor: pointer; vertical-align: middle;">
<input type="text" name="verify" placeholder="輸入驗證碼">

常見問題排查

現象原因解決
圖片顯示亂碼/破圖未呼叫 ob_clean(),有輸出干擾圖片二進位流在 Image::buildImageVerify() 前加入 ob_clean()
驗證永不通過Session 未啟動或驗證碼儲存鍵名不一致確認 session_start()、檢查 Image::verify() 參數
字體找不到字體檔路徑錯誤確認 ThinkPHP/Extend/Library/ORG/Util/ 下字體檔存在

驗證邏輯(表單處理)

if (!Image::verify($_POST['verify'])) {
    $this->error('驗證碼錯誤');
}
// 通過繼續業務邏輯

進階:自訂驗證碼參數

Image::buildImageVerify(4, 'png', 120, 40, 5); 
// 參數:長度、類型、寬、高、干擾線條數
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved