*   >> Lese Utdanning Artikler >> tech >> web development

Captcha - Den enkleste måten å gjøre det

Et stort problem i dag er spam. Den beste måten å bekjempe spam er Captcha. Captcha gjør forskjellen mellom en datamaskin og et menneske. Datamaskiner kan ikke lese teksten i et bilde, og dette er grunnen til at vi kommer til å bruke et bilde også.

La oss begynne med å lage filen captcha.php. Denne filen vil skape et bilde med en tekst skrevet på den

header ('Content-type: image /jpeg.

'); //En jpeg bildet vil bli sendt ut $ width = 60; //Bredde av bildet $ height = 24; //Høyde av bildet $ my_image = imagecreatetruecolor ($ bredde, $ høyde); //Opprett Truecolor bilde imagefill ($ my_image, 0, 0, 0xFFFFFF); //Hvit bakgrunn

Inntil nå har vi klart å skape et bilde som har en hvit bakgrunn, 60 piksler bred og 24 piksler høy.

La oss legge til noen distorsions:

for ($ c = 0; $ c $ x = rand (0, $ bredde-1); $ y = rand (0, $ høyde-1); imagesetpixel ($ my_image , $ x, $ y, 0x000000);}

Vi satt 40 sorte piksler i bildet Disse pikslene vil ha ulike coordonates hver gang et bilde blir lastet

La oss skrive tekst på.. bildet:..


$ x = rand (1,10); //X coordonate av øvre venstre hjørne $ y = rand (1,10); //Y coordonate av øvre venstre hjørne $ rand_string = rand (10000,99999); //Skaff et tall mellom 10 000 og 99 999 imagestring ($ my_image, 5, $ x, $ y, $ rand_string, 0x000000); //Skriv antall oppnådde tidligere på bildet

La oss redde strengen skrevet på bildet i en cookie. Vi vil lese denne cookie gang et skjema sendes til å sammenligne data.


setcookie ("cookie-captcha" (md5 ($ rand_string)) , tid () + 3600, "/"); imagejpeg ($ my_image); //Opprett jpeg bilde imagedestroy ($ my_image); //Slett jpeg bilde

I dette eksemplet cookie navn er cookie -captcha, det er innholdet vil være md5 kodet verdi av tilfeldig streng oppnådd tidligere (tallet skrevet i bildet), vil det være gyldig i en time på hele ditt domene.

Bildet er slettet (imagedestroy ) for å spare plass på serveren

Den komplette captcha.php filen vil være:

header ('Content-type: image /jpeg.

'); $ width = 60; $ height = 24; $ my_image = imagecreatetruecolor ($ bredde, $ høyde); imagefill ($ my_image, 0, 0, 0xFFFFFF); for ($ c = 0; $ c $ x = rand (0, $ bredde-1); $ y = rand (0, $ høyde-1); imagesetpixel ($ my_image, $ x, $ y, 0x000000);} $ x = rand (1,10); $ y = rand (1,10); $ rand_string = rand (10000,99999); imagestring ($ my_image, 5, $ x, $ y, $ rand_string, 0x000000); setcookie ("cookie-captcha" (md5 ($ rand_string)), tid () + 3600, "/"); imagejpeg ($ my_image); imagedestroy ($ my_image);?>

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Lese Utdanning Artikler,https://utdanning.nmjjxx.com All rights reserved.