PHP Captcha library
With composer :
{
...
"require": {
"gregwar/captcha": "1.*"
}
}
You can create a captcha with the CaptchaBuilder
:
<?php
use Gregwar\Captcha\CaptchaBuilder;
$builder = new CaptchaBuilder;
$builder->build();
You can then save it to a file :
<?php
$builder->save('out.jpg');
Or output it directly :
<?php
header('Content-type: image/jpeg');
$builder->output();
Or inline it directly in the HTML page:
<img src="<?php echo $builder->inline(); ?>" />
You’ll be able to get the code and compare it with a user input :
<?php
// Example: storing the phrase in the session to test for the user
// input later
$_SESSION['phrase'] = $builder->getPhrase();
You can compare the phrase with user input:
if($builder->testPhrase($userInput)) {
// instructions if user phrase is good
}
else {
// user phrase is wrong
}
You can use theses functions :
build()
true
if the OCR can be read using the ocrad
software, you’ll need to have shell_exec enabled, imagemagick and ocrad installedocrad
If you want to change the number of character, you can call the phrase builder directly using
extra parameters:
use Gregwar\Captcha\CaptchaBuilder;
use Gregwar\Captcha\PhraseBuilder;
// Will build phrases of 3 characters
$phraseBuilder = new PhraseBuilder(4);
// Will build phrases of 5 characters, only digits
$phraseBuilder = new PhraseBuilder(5, '0123456789');
// Pass it as first argument of CaptchaBuilder, passing it the phrase
// builder
$captcha = new CaptchaBuilder(null, $phraseBuilder);
You can also pass directly the wanted phrase to the builder:
// Building a Captcha with the "hello" phrase
$captcha = new CaptchaBuilder('hello');
If you want to see an example you can have a look at the demo/form.php
, which uses demo/session.php
to
render a captcha and check it after the submission
You can have a look at the following repository to enjoy the Symfony 2 bundle packaging this captcha generator :
https://github.com/Gregwar/CaptchaBundle
You can use the following extension for integrating with Yii2 Framework :
https://github.com/juliardi/yii2-captcha
This library is under MIT license, have a look to the LICENSE
file