PHP驗證碼類


https://packagist.org/packages/gregwar/captcha

在提交表單的時候為了防止機器操作或者是惡意的攻擊,在填寫表單的時候一般都用驗證碼來過濾掉一些非法提交數據。今天給大家介紹一款超實用超漂亮的PHP驗證碼庫:Captcha。

安裝

composer require gregwar/captcha

使用

Code:
	1. <?php
	2. use Gregwar\Captcha\CaptchaBuilder;
	3. $builder = new CaptchaBuilder;
	4. $builder->build();

也可以把驗證碼保存為圖片:

Code:
	1. <?php
	2. $builder->save('out.jpg');

或者直接輸出為圖片路徑:

Code:
	1. <?php
	2. header('Content-type: image/jpeg');
	3. $builder->output();

也可以結合HTML直接輸出圖片:

Code:
	1. <img src="<?php echo $builder->inline(); ?>" />

我們可以使用PHP的session()來記錄驗證碼並用於比對用戶輸入的驗證碼是否有效

Code:
	1. <?php
	2. $_SESSION['phrase'] = $builder->getPhrase();

上述代碼在生成驗證碼的時候就把驗證碼保存在session中,當用戶提交輸入的驗證碼后,再從session中取出來進行比對,具體處理代碼請查看DEMO和下載DEMO中的源碼。
生成的驗證碼默認是5個字符,那如果你想生成4個字符的驗證碼,可以這樣:

Code:
	1. <?php
	2. use Gregwar\Captcha\CaptchaBuilder;
	3. use Gregwar\Captcha\PhraseBuilder;
	4. $phraseBuilder = new PhraseBuilder(4);
	5. $builder = new CaptchaBuilder(null, $phraseBuilder);
	6. $builder->build();
	7. header('Content-type: image/jpeg');
	8. $builder->output();

如果你想生成的驗證碼只有數字

Code:
	1. <?php
	2. $phraseBuilder = new PhraseBuilder(4, '0123456789');

常用方法與選項

build($width = 150, $height = 40, $font = null):設置生成的驗證碼的寬度、高度以及字體。默認情況下,將隨機使用庫中的字體。
save($filename, $quality = 80):生成一張指定文件名和圖片質量的jpg驗證碼圖片。
get($quality = 80):獲取jpg圖片data數據。
output($quality = 80):向瀏覽器輸出圖片。
setBackgroundColor($r, $g, $b):設置驗證碼背景色,這個選項一般不推薦使用。
getPhrase():獲取驗證碼內容。
captcha項目地址:https://github.com/Gregwar/Captcha.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM