程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP開發框架Yii Framework教程(20) UI組件 Captcha示例

PHP開發框架Yii Framework教程(20) UI組件 Captcha示例

編輯:PHP綜合

Captcha(全自動區分計算機和人類的圖靈測試-Completely Automated Public Turing test to tell Computers and Humans Apart,簡稱CAPTCHA)俗稱驗證碼,是一種區分用戶是計算機和人的公共全自動程序。在CAPTCHA測試中,作為服務器的 計算機會自動生成一個問題由用戶來解答。這個問題可以由計算機生成並評判,但是必須只有人類才能解答。由於計算機無法解 答CAPTCHA的問題,所以回答出問題的用戶就可以被認為是人類。

Yii Framework提供了類CCaptcha和CCaptchaAction用 於支持驗證碼,要注意的是這個功能需要有PHP GD擴展支持,可以通過Yii的Requirements應用來查詢:

如果顯示Warning,可以通過安裝GD擴展庫,並修改PHP.ini打開該功能。

CCaptcha也提供方法 CCaptcha::checkRequirements() 來檢測GD庫是否安裝。

本例通過修改Yii Framework 開發教程(16) UI 組件 StarRating示例 為其添加Captcha功能,只有輸入的驗證碼正確時,用戶評分才有效,避免機器自動評分。

首先是修改 DataModel,添加一個屬性verifyCode 用來存放用戶輸入的驗證碼,並給其添加CCaptchaValidator驗證。

class 

DataModel extends CFormModel     
{     
    public $rating;     
    public $verifyCode;     

    public function rules()     
    {     

        return array(     
            array('rating,verifyCode',  'safe'),     
            array('verifyCode','captcha',     
                    'allowEmpty'=>!CCaptcha::checkRequirements()),     
        );     

    }     
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved