Cum sa iti faci propriul CAPTCHA in PHP – versiunea de baza

Created at: august 13, 2013; Last update: noiembrie 1, 2013

Codurile CAPTCHA ofera o protectie suplimentara daca vrei sa reduci cantitatea de spam venita din partea spiderilor. Astfel, pentru a te asigura ca un comentariu nu este de fapt spam si ca este nevoie sa fie om cel care vrea sa scrie pe site-ul tau ai nevoie de o imagine care ar trebui sa fie mai greu de citit (intuitia este inca greu de emulat de calculatoare). Dupa cum spune chiar si denumirea…. CAPTCHA este acronim pentru “Completely Automated Public Turing test to tell Computers and Humans Apart”.

Inainte de toate trebuie sa stii ca niciun sistem antispam nu protejeaza in proportie de 100%.

Cum ar trebui sa functioneze sistemul CAPTCHA?

In principiu un sistem CAPTCHA ia la intamplare o serie de caractere si le afiseaza intr-o imagine pastrand in acelasi timp acea serie de caractere intr-o variabila de sesiune. Utilizatorul, citind caracterele respective de pe imagine, va trebui sa le copieze intr-un element de formular de tip text. Ulterior, scriptul PHP va compara sirul de caractere introdus de utilizator cu sirul de caractere pastrat in variabila de sesiune si, daca egalitatea se va confirma, va permite continuarea executiei codului.

Codul…

Vom porni de la o secventa de cod gasita pe site-ul Code Sucks:

Astfel, intr-un fisier pe care il vom denumi captcha.php vom scrie:

Bineinteles ca imaginea poate fi mult mai complexa si trebuie sa ai grija ca background-ul sa fie cat mai apropiat de culoarea fontului folosit pentru afisarea codului. Exista deja spideri care ar putea citi codul captcha pe care noi l-am realizat acum.

Printre modalitatile prin care poti sa te asiguri ca citirea codului va fi mai grea pentru spideri se mai numara:

– folosirea unui unui font care este mai greu de inteles.
– scrierea caracterelor in diverse unghiuri fata de baza imaginii.
– (ceea ce am mentionat mai sus) folosirea unui background cat mai asemanator culorii fontului cu care este scris codul; o cautare pe Google ar trebui sa iti dea destule optiuni, daca nu poti sa iti faci tu unul.

Background-ul pe care l-am gasit eu arata asa:

back
L-am gasit la adresa http://www.canadianclassicrock.com/wp/wp-content/plugins/si-contact-form/captcha/backgrounds/

Cum integram totul

Acum ca am facut codul CAPTCHA si l-am pastrat intr-o variabila de sesiune, tot ce ne mai trebuie este sa chemam acest script si apoi sa comparam codul captcha introdus de utilizator cu codul captcha pastrat de sesiune.

In pagina de formular vom adauga imaginea CAPTCHA si vom face un camp de introducere a codului astfel:

Sper ca iti dai seama ca nu am pus tot formularul cu toate campurile ce trebuie completate, ci doar campurile care sunt importante pentru codul captcha…

Apoi, in fisierul de validare, vei scrie ceva de genul…

Bineinteles ca si aici am scris doar partea care ma intereseaza pe mine pentru captcha…

Lecturi suplimentare:

Un foarte bun tutorial cu mai multe versiuni (mai avansate) de Captcha: http://www.the-art-of-web.com/php/captcha/

Realizator de scripturi Captcha pentru cei care nu au timp sau sunt prea lenesi pentru a invata: http://www.captchacreator.com/v-customize.html

Lasă un răspuns

Your email address will not be published. Required fields are marked *

No spam? * Time limit is exhausted. Please reload CAPTCHA.