Exemple de capcha per formulari web amb php

Una guia rapida per la creació d’un simple capcha per formulari web amb php.

capcha-ejemplo

Exemple d’ús d’un capcha

Definició de Capcha

Consisteix en que l’usuari introdueixi correctament un conjunt de caràcters que es mostren en una imatge distorsionada que apareix per pantalla. Se suposa que una màquina no és capaç de comprendre i introduir la seqüència de forma correcta, de manera que només l’humà podria fer-ho.

Els captchas són utilitzats per evitar que robots, també anomenats spambots, puguin utilitzar certs serveis. Per exemple, perquè no puguin participar en enquestes o fòrums de discussió, registrar-se per utilitzar comptes de correu electrònic (o per el seu ús per a enviament de correu brossa) i més recentment, per evitar que un bot d’aquest tipus pugui enviar correu brossa (el remitent ha de passar el test abans que es lliuri al destinatari).

Exemple de capcha per formulari web amb php

En primer lloc ens hem de baixar el fitxer capcha.php, aquest arxiu és l’encarregat de generar el conjunt de caràcters i mostrar-los en una imatge distorsionada. Aquest fitxer l’hem de deixar en alguna carpeta del servidor web, per exemple a la carpeta d’elements d’administració admin.

En alguna part del formulari on volem afegir el capcha, hem d’afegir el següent:

capcha-formulario

El camp d’entrada capcha serà l’encarregat d’enviar el text introduït per l’usuari. La imatge del capcha és una crida a l’arxiu php, l’arxiu està en el servidor a la direcció /admin/capcha.php, si provem d’obrir el formulari de la pàgina veurem com ens va generant de manera aleatòria una seqüència de 5 lletres i nombres:

capcha-aleatorio

Ara només queda comprovar en la validació del formulari que el camp introduït per l’usuari equival al generat per l’arxiu capcha.php, ho podem fer de la següent manera:

 if(strtoupper($_REQUEST["captcha"]) == $_SESSION["captcha"]){
   $_SESSION["captcha"] = md5(rand()*time());
	   //Capcha correcto, añadimos nuestro codigo de validacion
	 }else{
		   //Capcha incorrecto, añadimos el codigo de error
 }

 

Si el capcha ha estat correctament introduït afegim el codi per a la validació del formulari, en cas incorrecte podem mostrar un missatge d’avís de capcha incorrecte.

Conclusió

Una solució molt simple però molt efectiva per no rebre spam en els formularis web, el capcha no és molt difícil de llegir i per tant no suposa un inconvenient molt important perquè l’usuari acabi enviant la sol·licitud.

Leave a Reply