Con compositor:
{
...
"require" : {
"gregwar/captcha" : " 1.* "
}
}
Puedes crear un captcha con CaptchaBuilder
:
<?php
use Gregwar Captcha CaptchaBuilder ;
$ builder = new CaptchaBuilder ;
$ builder -> build ();
Luego puedes guardarlo en un archivo:
<?php
$ builder -> save ( ' out.jpg ' );
O enviarlo directamente:
<?php
header ( ' Content-type: image/jpeg ' );
$ builder -> output ();
O insértelo directamente en la página HTML:
<img src=" <?php echo $ builder->inline(); ?> " />
Podrás obtener el código y compararlo con una entrada del usuario:
<?php
// Example: storing the phrase in the session to test for the user
// input later
$ _SESSION [ ' phrase ' ] = $ builder -> getPhrase ();
Puede comparar la frase con la entrada del usuario:
if ( $ builder -> testPhrase ( $ userInput )) {
// instructions if user phrase is good
}
else {
// user phrase is wrong
}
Puedes utilizar estas funciones:
build()
true
si el OCR se puede leer usando el software ocrad
, necesitarás tener shell_exec habilitado, imagemagick y ocrad instaladosocrad
no lo puede leerSi desea cambiar la cantidad de caracteres, puede llamar al generador de frases directamente usando parámetros adicionales:
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 );
También puedes pasar directamente la frase deseada al constructor:
// Building a Captcha with the "hello" phrase
$ captcha = new CaptchaBuilder ( ' hello ' );
Si desea ver un ejemplo, puede echar un vistazo a demo/form.php
, que utiliza demo/session.php
para representar un captcha y verificarlo después del envío.
Puedes echar un vistazo al siguiente repositorio para disfrutar del paquete Symfony 2 que incluye este generador de captcha: https://github.com/Gregwar/CaptchaBundle
Puede utilizar la siguiente extensión para integrarse con Yii2 Framework: https://github.com/juliardi/yii2-captcha
Esta biblioteca está bajo licencia MIT, eche un vistazo al archivo LICENSE