*   >> läser Utbildning artiklar >> tech >> web development

Captcha - Det enklaste sättet att göra it

Ett stort problem idag är spam. Det bästa sättet att bekämpa spam är Captcha. Captcha gör skillnaden mellan en dator och en människa. Datorer kan inte läsa texten i en bild och det är därför vi kommer att använda ett foto också. Omdömen

Låt oss börja med att skapa filen captcha.php. Denna fil kommer att skapa ett foto med en text skriven på det Omdömen

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

//En JPEG-bild ska matas $ width = 60; //Bredd bild $ height = 24; //Höjd bild $ my_image = imagecreatetruecolor ($ bredd, $ höjd); //Skapa truecolor image imagefill ($ my_image, 0, 0, 0xFFFFFF); //Vit bakgrund Omdömen

Hittills har vi lyckats skapa en bild som har en vit bakgrund, 60 pixlar bred och 24 pixlar hög.

Låt oss lägga till några snedvridningar

för ($ c = 0; $ c $ x = rand (0, $ bredd 1), $ y = rand (0, $ höjd-1), imagesetpixel ($ my_image , $ x, $ y, 0x000000);} Omdömen

Vi insatt 40 svarta pixlar i bilden Dessa pixlar kommer att ha olika coordonates varje gång en bild laddas Omdömen

Låt oss skriva texten på.. Bilden:..

Omdömen

$ x = rand (1,10); //X coordonate av det övre vänstra hörnet $ y = rand (1,10); //Y coordonate av det övre vänstra hörnet $ rand_string = rand (10000,99999); //Skaffa ett nummer mellan 10000 och 99999 imagestring ($ my_image, 5, $ x, y $, $ rand_string, 0x000000); //Skriv det värde som erhålls tidigare på bilden Omdömen

Låt oss spara strängen skrivit på bilden i en cookie. Vi kommer att läsa den här cookien då en formell skickas för att jämföra data.

Omdömen

setcookie ("cookie-captcha" (md5 ($ rand_string)) , tiden () + 3600, "/"); //Skapa jpeg bild imagedestroy ($ my_image),; //Radera jpeg bilden Omdömen

I det här exemplet cookien namn är cookies imagejpeg ($ my_image) -captcha, är det innehållet kommer att vara det md5 kodade värdet av slumptalssträngen tidigare erhållits (antalet skrivet i bild), kommer det att vara giltigt för en timme på alla din domän. Omdömen

Bilden raderas (imagedestroy ) för att spara utrymme på servern Omdömen

Den fullständiga captcha.

php filen kommer att vara: Omdömen

header ("Content-typ: image /jpeg".); $ width = 60; $ höjd = 24; $ my_image = imagecreatetruecolor ($ bredd, $ höjd); imagefill ($ my_image, 0, 0, 0xFFFFFF); för ($ c = 0; $ c $ x = rand (0, $ bredd-1), $ y = rand (0, $ höjd-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äser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.