Day-0 Posted November 20, 2012 Report Posted November 20, 2012 (edited) Captcha unul dintre primele scripturi care un programator il creeaza , un modul de constacte , care prevede completarea unui formular , plasarea unui e'mail automat la contact , asta pentru a evita probleme neplacute precut SPAM'UL .Una dintre solutiile acestei probleme poate fii [ CAPTCHA ] , un cod alfanumeric generat sub forma de imagine pentru a fii copiat intr'un textbox de catre utilizatori .Cerintele pentru creearea unui cod [ CAPTCHA ] , ei bine este doar 1 , utilizarea librariei [ GD ] pentru PHP , care va va permite sa lucrati sa creeati si sa utilizati codul [ CAPTCHA ] intr'o maniera dinamica . Librariile acestea sunt prezente in cele mai recente versiuni [ PHP ] , puteti verifica prezenta acesteia print [ php info(); ] Scriptul pe care il veti realiza este reprezentat de un [ file : captcha.php ]Exemplu de continut captcha.php ://Inceputul sesiunii unde este pastrat codul [ CAPTCHA ].session_start();//Generarea unui cod de 5 cifre [ random ].$random_txt = md5(microtime());$random_txt = substr($random_txt, 0, 5);//Crearea unei imagini.png , care se utilizeaza ca fundal (120x40px)$image = imagecreatefrompng("captcha.png");//Selectarea unei culri RGB , in cazul nostru .//0,0,0 echivalentul culorii negru$colore = imagecolorallocate($image, 0, 0, 0);//Creearea unei imagini finale unde campurile numerice se indentifica .//Dimensiunea fontului , distanta de la stanga si distanta de la margine -//margine inalta .imagestring($image, 100, 35, 15, $random_txt, $color);//Creerea sesiuni unde se pastraza textul RANDOM$_SESSION['COD'] = $random_txt;//Vizualizarea imaginii pentru CAPTCHAheader("Content-type: image/jpeg");imagejpeg($image);Dupa ce am generat scriptul [ captcha.php ] este aproape imposibil sa nu se inteleaga controalele acestuia care trebuiesc efectuate . Practic , trebuie s? vedem refresh pe formularul de contact si sa verifice corespondenta în pagina de rezultate :Cod continut in pagina de modul :...<img src="captcha.php" alt="Captcha"/><input name="cod" type="text" id="cod" size="5" maxlength="5"/>...Acum se trebuie controlat daca codul introdus de catre user corespunde cu cel scris [ CAPTCHA ] Control :...if ($_SESSION['COD']==$_POST['cod']) Initiez form... Edited November 20, 2012 by Day-0 Quote
yoyois Posted November 20, 2012 Report Posted November 20, 2012 si e deosebit de simplu sa faci un bot care trebuie doar sa trimita sesiunea 'COD'.Nu ar fi mai bine ca sesiunea sa fie ceva de genul: md5($random_txt) ? Quote
Day-0 Posted November 20, 2012 Author Report Posted November 20, 2012 si e deosebit de simplu sa faci un bot care trebuie doar sa trimita sesiunea 'COD'.Nu ar fi mai bine ca sesiunea sa fie ceva de genul: md5($random_txt) ?Fiecare are stilu lui de a coda Quote
Xander Posted November 20, 2012 Report Posted November 20, 2012 @yoyois... nu asa functioneaza sesiunile in php... datele din _SESSION sunt stocate pe server Quote
yoyois Posted November 20, 2012 Report Posted November 20, 2012 Scuze. Credeam ca se refera la cookies. Quote