Captcha în PHP

Captcha în PHP

Bună ziua, dragi cititori blog LifeExample. astăzi vreau să ia timp să se familiarizeze cu elementul pe care doriți să protejeze site-ul. Creat de noi în PHP CAPTCHA vă ajută să vă pentru a proteja site-ul de spam.

Înainte de a începe dezvoltarea captchas în PHP. Să dot toate i. și de a înțelege, în cazul în care acest lucru nu a făcut clar numele și ce înseamnă.

Ce este CAPTCHA

Astăzi, setare, orice webmaster, întrebarea: "Ce este CAPTCHA?". Cu siguranță auzim: „Captcha - un mijloc de protecție împotriva roboți de spam.“ În principiu, acest lucru este corect, dar să se îngropa în poveste, pentru a afla un răspuns mai precis la această întrebare.

În acele zile, și la această zi, oamenii de știință și programatori de la mai multe universități nu au creat inteligență artificială, echivalentă cu mintea umană. În ciuda acestui fapt, lucrările lui Turing a găsit o aplicație mare în testul complet automatizat Turing publice să se facă distincția între calculatoare și oameni (Complet automat de testare Turing publice pentru a spune Computers and Humans Apart) CAPCHA abreviat.

Acum a devenit clar că CAPTCHA cuvânt - este doar un CAPCHA abrevieri de transcriere. Ascuns în spatele unei transcrieri lung.

Astfel, răspunzând la întrebarea: „Ce este CAPTCHA“, putem spune cu siguranță că acesta este un test pentru a diferenția calculatoare și de oameni. Și, din moment ce utilizarea captchas putem determina exact cine a trimis răspunsul, omul sau mașina, apoi aplicați cu ușurință acest lucru în avantajul tău.

Ei bine, mi se pare pentru a satisface nevoile lor literare, și pot începe să creeze captchas în PHP.

Cum sa faci o captcha

Dacă vă întrebați yandekes sau Google, pentru a ne da răspunsul la această întrebare, atunci puteți găsi masa soluțiilor oferite. Început de a face cu munca algoritmi, am citit o mulțime de sfaturi și exemple de implementare a CAPTCHA în PHP. Ceea ce mi-a permis să tragă câteva concluzii și să pună în aplicare script-ul în așa fel încât să îndeplinească cerințele mele.

A trebuit să creeze un scenariu „pe PHP Captcha“ necesită un efort minim și este responsabil în sensul acestei protecții.

Pentru a crea un primitiv, dar îndeplinește toate canoanele de protecție, trebuie să avem cinci fișiere:

  1. index.php - un script deducînd captcha nostru pe PHP;
  2. validator.php - script-ul verifică asemănarea cu imaginea;
  3. capcha.php - imagine Script;
  4. comic.ttf - fontul de text;
  5. bg_capcha.png - fundal în spatele textului.

Să comanda, primul lucru pe care vrem să facem este să aducem o imagine pentru acest lucru în fișierul index.php Scrierea aceste linii:

Introduceti codul din imagine:








Merită să acorde o atenție la atributul src specificat. nu este caracteristic unui fișier cu extensia PHP pentru ea. Lucru este că, chiar dacă fișierul captcha.php este un script, dar returnează un răspuns în formă de imagini în format png este destul de potrivit pentru tag-ul
img.

Aruncati o privire la codul de script-ul imagine oscilant:

$ = 'Scrisori ABCDEFGKIJKLMNOPQRSTUVWXYZ'; // alfabet

$ Caplen = 6; // lungimea textului
$ Width = 120; $ Înălțime = 40; // lățimea și înălțimea imaginii
$ Font = 'comic.ttf'; // Fontul textului
$ FONTSIZE = 14; // dimensiunea textului

antet # 40; 'Content-type: image / png' # 41; ; // tipul de întoarcere de conținut (imagini în format PNG)

$ Im = imagecreatetruecolor # 40; $ Lățime. $ înălțime # 41; ; // creează o nouă imagine
imagesavealpha # 40; $ Im. adevărat # 41; ; // setează transparența imaginii
$ Bg = imagecolorallocatealpha # 40; $ Im. 0. 0. 0. 127 # 41; ; // identificator al culorii pentru imaginea
imagefill # 40; $ Im. 0. 0. $ bg # 41; ; // umple de culoare

putenv # 40; 'GDFONTPATH ​​='. ului căilor # 40; '' # 41; # 41; ; // verificați calea către fișierul cu fonturi

$ Captcha = ''; // Zero versuri
pentru # 40; $ I = 0; $ i <$caplen ; $i ++ )
# 123;
$ Captcha. = $ Letters # 91; Rand # 40; 0. strlen # 40; scrisori $ # 41; - 1 # 41; # 93; ; // un caracter aleator atașează din alfabetul
$ X = # 40; $ Lățime - 20 # 41; / $ Caplen * $ i + 10; // distanța între caractere
$ X = rand # 40; $ X. $ X + 4 # 41; ; // deplasare aleatorie
$ Y = $ înălțime - # 40; # 40; $ Înălțime - $ FONTSIZE # 41; / 2 # 41; ; // coordonata Y
$ Curcolor = imagecolorallocate # 40; $ Im. Rand # 40; 0. 100 # 41;. Rand # 40; 0. 100 # 41;. Rand # 40; 0. 100 # 41; # 41; ; // culoare pentru scrisoarea curentă
$ Unghi = rand # 40; - 25. 25 # 41; ; // un unghi de înclinare aleatoare
imagettftext # 40; $ Im. $ FONTSIZE. $ Unghi. $ X. $ Y. $ Curcolor. $ Font. $ captcha # 91; $ i # 93; # 41; ; // text de ieșire
# 125;

// deschide o sesiune pentru a salva textul generat
session_start # 40; # 41; ;
$ _SESSION # 91; 'Capcha' # 93; = $ Captcha;

imagepng # 40; $ im # 41; ; // imagine de afișare
imagedestroy # 40; $ im # 41; ; // curăță de memorie

session_start # 40; # 41; ;
dacă # 40; $ _POST # 91; 'Capcha' # 93; ! = $ _SESSION # 91; 'Capcha' # 93; # 41;
echo „textul din imagine introdus nu este adevărat!“ ;
altfel
echo "Ur a coincis text!" ;

Ca rezultat, am transformat un scenariu ușor și ușor de încorporat în PHP CAPTCHA

Captcha în PHP

În general, colegii de clasă fac site-ul, suntem aici pentru a face pagina php, în același timp, verificați parola introduse de conectare, simultan pagină HTML (codul HTML blocat în print „aici“, pe de altă parte nu este încă știu cum) acest html avem un tabel - în cazul în care cele 2 coloane și rânduri de conectare / caseta pentru a introduce parola de conectare domeniu / parola, totul funcționează bine, dar când am adăuga dvs.


Introduceti codul din imagine:





pagina noastră de pe Internet nu mai este progruzhat, adică foaie albă prost în loc de login.php noastre.
Nu știi de ce acest lucru ar putea fi?