Hacking and more...
HaCkinG CulT
Lista Forumurilor Pe Tematici
Hacking and more... | Reguli | Inregistrare | Login

POZE HACKING AND MORE...

Nu sunteti logat.
Nou pe simpatie:
laura84 pe Simpatie.ro
Femeie
24 ani
Valcea
cauta Barbat
24 - 49 ani
Hacking and more... / n00bs / Trimiterea de mesaje de tip e-mail prin formulare html Moderat de Shocker
Autor
Mesaj Pagini: 1
shogun
Master of 127.0.0.1

Din: Scoala Vieti
Inregistrat: acum 17 ani
Postari: 150
Aproape toate website-urile de pe Internet au cel puţin o pagină intitulată „Contact” sau „Informaţii de contactare”. În funcţie de pagină, de scop şi de target acolo se pot afla numere de telefon, adrese fizice sau adrese de e-mail; puţini îşi pun însă problema că aceste date pot fi folosite şi în alte scopuri decât cele în care au fost publicate acolo…

În zilele noastre spam-ul (mesajele electronice nesolicitate de factură comercială a devenit o problemă majoră, „hrănită” şi de faptul că în astfel de locuri se găsesc adrese de e-mail cât se poate de valide. Problema nu sunt oamenii ci „roboţii”, programe specializate care vizitează zeci, sute de mii de pagini pe zi colectând tot ce pare a fi adresă de e-mail iar după un alt set de prelucrări aceşti indivizi „binevoitori” se vor afla în posesia unor baze de date uriaşe. Cei care vor să reducă la minim riscul de a ajunge în astfel de baze de date aplică soluţia descrisă mai jos.

Limbajul PHP are posibilitatea de a trimite mesaje folosind funcţia mail(). Nu sunt necesare configurări legate de server sau de programul prin care se face în mod efectiv transmisia mesajului – cele mai multe configuraţii sunt recunoscute în mod automat, într-un mod total transparent faţă de utilizator. Problema în sine este „hrănirea” acestei funcţii cu parametrii necesari (vezi documentaţia), şi asta se face prin colectarea anumitor informaţii de la utilizator.

Un formular simplu ar trebui să conţină doar un singur câmp de tip text, însă pentru a asigura o minimă seriozitate în ce priveşte conţinutul mesajului trebuie cerute în mod explicit şi informaţii de tip nume sau adresă de e-mail; mai mult, acestea trebuie validate. În cazul unui formular cu 3 câmpuri, şi anume „numele dvs” ($nume), „adresa de e-mail” ($email) şi „mesaj” ($mesaj), codul care asigură validarea server-side ar putea fi:
if (strlen($nume)<3) { $fault[“nume”]=true; $err_msg.=“• Numele este prea scurt.<br>”; }
if (strlen($email)<6) { $fault[“email”]=true; $err_msg.=“• Nu există adrese de e-mail valide sub 6 caractere.<br>”; }
elseif (strpos($email,“@”)===false) { $fault[“email”]=true; $err_msg.=“• Adresa de e-mail nu conţine “@”.<br>”; }
elseif (strpos($email,“.”)===false) { $fault[“email”]=true; $err_msg.=“• Adresa de e-mail nu conţine “.” (punct).<br>”; }
elseif (strpos($email,“ ”)!==false) { $fault[“email”]=true; $err_msg.=“• Adresa de e-mail conţine cel puţin un spaţiu.<br>”; }
elseif (!$fault[“email”])
{
  $arre=explode(“@”,$email);
  if (checkdnsrr($arre[1])!=true) { $fault[“email”]=true; $err_msg.=“• Adresa de e-mail este invalidă (falsă.<br>”; }
}
if (strlen($mesaj)<10) { $fault[“mesaj”]=true; $err_msg.=“• Mesajul este prea scurt pentru a fi un mesaj în adevăratul sens al cuvântului.<br>”; }

Această secvenţă de cod ne asigură că numele nu este ilogic de scurt, adresa de e-mail este (presupus) validă şi că mesajul este totuşi un mesaj, oricât de scurt. O verificare strictă a adresei de e-mail ar presupune conectarea pe portul 25 al serverului specificat după @ (înregistrarea MX corespunzătoare domeniului respectiv, mai precis) şi verificarea faptului că acel server acceptă mesaje pentru utilizatorul respectiv (specificat înainte de @). Problema este că există servere care acceptă astfel de mesaje chiar şi fără ca utilizatorul respectiv să existe.

De asemenea, această secvenţă de cod returnează mesajele de eroare corespunzătoare. Pentru a verifica funcţionarea ei puteţi să încercaţi să mă contactaţi prin acest website folosind date în mod evident invalide.

În cazul în care totul este în regulă, mesajul se poate trimite. În concordanţă cu secvenţa de cod de mai sus apelarea funcţiei mail() poate să arate (de exemplu) cam aşa:
mail(“ ”,“Mesaj trimis prin formular”,wordwrap($mesaj,72),“From: ”.$nume.“ <”.$email.“>nX-Mailer: PHP/”.phpversion());

Pentru detalii legate de funcţiile wordwrap() şi phpversion() puteţi consulta documentaţia.
Dan-Claudiu Dragoş
Alte resurse, pe aceeaşi temă:

         •  PHP Manual: mail()
         •  PHP Manual: wordwrap()
         •  PHP Manual: phpversion()
         •  PHP Manual: String functions
Index  |  << Articolul Precedent  |  Articolul Următor >>
Gazeta de... Pereţi!    
Gabriel PREDA (62.231.69.---)     2 Iulie 2003, 14:56
Ce zici de
preg_match_all("/([a-z0-9_.]+@[a-z0-9.]+.[a-z]{2,6})/i",$content,$adresevalide);
Si in felul asta il lasi sa bage si mai multe adrese... oricum o sa le ia doar pe cele corecte si le pune in $mace[1][x]

Nota editor: Eu zic ca adresele de e-mail nu vor incepe in viata lor cu . (punct) sau cu _ (underscore). Felicitari pentru intentie, oricum :P

Comentariul tău, legat de acest text:
Numele tău:    
Adresa de e-mail:          
Comentariu:    
Acest comentariu va fi făcut public în cadrul acestei pagini. Prin adăugarea lui sunteţi de acord cu faptul că răspunderea pentru conţinutul său vă aparţine în întregime.



  sa va fie de ajutor


_______________________________________


pus acum 17 ani
   
Pagini: 1  

Mergi la