2010年10月5日 星期二

CodeIgniter 驗證碼

源代码下载地址:http://code.google.com/p/cool-php-captcha/

最新的是0.3版,所以我下cool-php-captcha-0.3.zip

解壓縮後得到cool-php-captcha-0.3目路,裡面有4個文件和一个resources目錄。

captcha.php:生成captcha的文件,关键文件;

example-form.php:一个验证页面例子;

example.jpg:生成后的效果图;

LICENSE.txt:许可协议;

resources:存放了生成時需要的資源文件,包括字体、字典和语言文件,關鍵目錄。

其实有captcha.php和resources目录就可以使用了。


因為原作不是基於CodeIgniter框架的,為了最短时間内可以使用,按下列步骤操作:

1.    建一个與system平级的resources目錄,这个是存放CI编程時用得到的資源文件,
       平時我把CSS、JS、Images都放在这里,如果你已经有類似的目录了(public),
       跳到下一步;

2.   复制captcha.phpresources目錄到剛才建的(public)目录中,
      將複製進來的resources目錄改名为captcha,目的是標記清楚,不會混淆;


 3.  告訴captchay 資源文件目錄改名了。打開“captcha.php”,
      找到“OPTIONAL Change configuration…”,
      在他下面找到“$captcha->resourcesPath = “/var/cool-php-captcha/resources”;”,
      改     为“$captcha->resourcesPath = “captcha”;”,再把前面的注釋符“//”去掉
      其它的captcha的配置可根据自己需要改變;


4.   在自己要使用驗證碼的地方,使用這個HTML代碼:



點擊更换圖片

5. 如果需要更新的話,传递一个随機數做参數就行了:


点击更换图片





6. 驗證的时候,把提交的驗證碼和$_SESSION['captcha']做比對就行了。


注意:如果按上面的步骤做,卻顯示不出驗證碼圖片,請查看.htaccess文件,確認rewrite功能把resources目錄排除了。具體語句如下:

RewriteCond $1 !^(index\.php|resources|robots\.txt)

PS:可以在config.php里增加一條語句配置資源文件目錄:



沒有留言:

張貼留言