*   >> lukeminen koulutus Artikkelit >> tech >> web development

Captcha - Yksinkertaisin tapa tehdä it

Suuri ongelma tällä hetkellä on roskapostia. Paras tapa taistella roskapostia on Captcha. Captcha tekee eron tietokoneen ja ihmisen. Tietokoneet pysty lukemaan tekstiä kuvan ja siksi käytämme kuva liian.

Aloitetaan luomalla tiedosto captcha.php. Tämä tiedosto luo valokuva teksti kirjoitettu.


otsikko ("Content-type: image /jpeg); //Jpeg kuva tulee ulos $ width = 60; //Leveys kuvan $ korkeus = 24; //Korkeus kuva $ my_image = imagecreatetruecolor ($ leveys, $ korkeus); //Luo TrueColor kuva imagefill ($ my_image, 0, 0, 0xFFFFFF); //Valkoinen tausta

Tähän asti olemme onnistuneet luomaan kuvan, joka on valkoisella pohjalla, 60 pikseliä leveä ja 24 pikseliä korkea.

Katsotaanpa lisätä muutamia vääristymiä:

($ C = 0; $ c $ x = rand (0, $ leveys-1); $ y = rand (0, $ korkeus-1), imagesetpixel ($ my_image , $ X, $ y, 0x000000);}

Lisätään 40 musta pikseliä kuvaan. Nämä kuvapisteet on eri coordonates joka kerta kuva on ladattu.

Oletetaan kirjoittaa tekstiä kuva:

$ x = rand (1,10); //X coordonate on vasemmassa yläkulmassa. $ y = rand (1,10); //Y coordonate on vasemmassa yläkulmassa.

$ rand_string = rand (10000,99999); //Hanki väliltä 10000 ja 99999 imagestring ($ my_image, 5, $ X, $ y, $ rand_string, 0x000000); //Kirjoita saatu luku aiemmin kuva

Oletetaan tallentaa merkkijonon kirjoitettu kuvan evästeen. Luemme tämän evästeen kerran lomake lähetetään tietojen vertailua.


setcookie ("cookie-captcha", (md5 ($ rand_string)) , aika () + 3600, "/"); imagejpeg ($ my_image); //Luo jpeg kuva imagedestroy ($ my_image); //Poistetaan jpeg kuva

Tässä esimerkissä evästeen nimi on eväste -captcha, sen sisältö on MD5 koodattu arvo satunnaisjono saatu aikaisemmin (numero kirjoitettu kuva), se on voimassa tunnin kaikki verkkotunnuksesi.

kuva on poistettu (imagedestroy ) säästää tilaa palvelimella.

Täydellinen captcha.

php tiedosto on:

otsikko ("Content-type: image /jpeg); $ Width = 60; $ Korkeus = 24; $ My_image = imagecreatetruecolor ($ leveys, $ korkeus); imagefill ($ my_image, 0, 0, 0xFFFFFF); for ($ C = 0; $ c $ x = rand (0, $ leveys-1); $ y = rand (0, $ korkeus-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)), aika () + 3600, "/"); imagejpeg ($ my_image), imagedestroy ($ my_image);?>

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 lukeminen koulutus Artikkelit,https://koulutus.nmjjxx.com All rights reserved.