*   >> Læs Uddannelse artikler >> tech >> web development

Captcha - Den enkleste måde at gøre it

Et stort problem i dag er spam. Den bedste måde at bekæmpe spam er Captcha. Captcha gør forskellen mellem en computer og et menneske. Computere kan ikke læse teksten i et billede, og det er derfor, vi vil bruge et foto også.

Lad os starte ved at oprette filen captcha.php. Denne fil vil skabe et billede med en tekst skrevet på det

header ('Content-Type: image /jpeg ");.

//Et JPEG-billede vil blive udsendt $ width = 60; //Bredde af billedet $ højde = 24; //Højde af billedet $ my_image = imagecreatetruecolor ($ bredde, $ højde); //Opret TrueColor billede imagefill ($ my_image, 0, 0, 0xFFFFFF); //Hvid baggrund

Indtil nu har vi formået at skabe et billede, der har en hvid baggrund, 60 pixels bredt og 24 pixels højt.

Lad os tilføje nogle forvridninger:

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

Vi indsat 40 sorte pixels i billedet Disse pixels vil have forskellige coordonates hver gang et billede er indlæst

Lad os skrive teksten på.. billedet:..


$ x = rand (1,10); //X coordonate af det øverste venstre hjørne $ y = rand (1,10); //Y coordonate af det øverste venstre hjørne $ rand_string = rand (10000,99999) //Få et tal mellem 10000 og 99999 imagestring ($ my_image, 5, $ x, $ y, $ rand_string, 0x000000) //Skriv nummeret opnåede tidligere på billedet

Lad os gemme strengen skrevet på billedet i en cookie. Vi vil læse denne cookie, når en formular indsendes til at sammenligne data.


setcookie ("cookie-captcha", (md5 ($ rand_string)) , tid () + 3600, "/"), imagejpeg ($ my_image) //Opret jpeg billede imagedestroy ($ my_image) //Slet jpeg billedet

I dette eksempel cookie navn er cookie -captcha, det er indholdet vil være md5 kodet værdi af det tilfældig streng opnåede tidligere (nummeret skrevet i billedet), vil det være gældende for en time på alle dit domæne.

Billedet er slettet (imagedestroy ) for at spare plads på serveren

Den komplette captcha.php fil vil være:

header ('Content-Type: image /jpeg ".

); $ width = 60; $ height = 24; $ my_image = imagecreatetruecolor ($ bredde $ højde); imagefill ($ my_image, 0, 0, 0xFFFFFF); for ($ c = 0; $ c $ x = rand (0, $ bredde-1), $ y = rand (0, $ højde-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 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.