Current time: 01-07-2009, 07:13 AM
Hello There, Guest! (Login — Register)
Bine ai venit pe Invatam.Net
Te invitam sa te inregistrezi pe forum, daca nu esti deja membru in Invatam.Net
...
Invatam.Net este unul dintre cele mai noi forum-uri de web design si dezvoltare
din Romania. Vei gasi aici tutoriale, articole unicat si o comunitate prietenoasa.
Daca esti incepator sau avansat iti vei gasi locul alaturi de alti pasionati
de design. Poti discuta despre diferite aspecte ale activitatii tale, cere informatii,
schimba links sau mesaje de forum, posta anunturi si descarca fisiere exclusive
pentru Invata.Net si Wtricks.com
//Verifica daca este scris numele
if($nume==""){
exit("Va rugam sa va scrieti numele si prenumele");
}
$prenume = $_POST['prenume'] ;
if($prenume==""){
exit("Va rugam sa scrieti cui ii este adresat mesajul (oana sau ilink)");
}
$email = $_POST['email'] ;
//Verifica daca adresa de email este valida
function validate_email($email) {
if (preg_match("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}$/i", $email)) {return true;}
else {return false;}
}
if (validate_email($email) == false){exit("Eroare! Va rugam sa scrieti o adresa de email valida");}
$mesaj = $_POST['mesaj'] ;
//Verifica daca este scris mesajul
if($mesaj==""){
exit("Va rugam scrieti mesajul altfel el nu va fi trimimis");
}
Partea asta se foloseste doar cand hostingul dumneavoastra nu dispune de functia mail() activa. Dar va zic singur ca la un hosting cumparat nu se va intampla niciodata asta. Davidelu, eu zic sa postez isi varianta fara smtp. Daca nu stii ce trebuie modificat.. dai reply si`l refac eu.
Ce imi place cand oamenii se apuca sa recicleze scripturile lui Zero postate in vremurile bune ale xhost.ro. Inseamna ca meritau folosite. Hai, sariti pe capul meu si spuneti ca nu e asa!
Partea asta se foloseste doar cand hostingul dumneavoastra nu dispune de functia mail() activa. Dar va zic singur ca la un hosting cumparat nu se va intampla niciodata asta.
Eu zic ca ar fi bine sa se foloseasca tot timpul. Firmele de hosting permit utilizarea mail() pentru ca se cere, asta e singurul motiv. Cand trimiti cu mail() pot aparea foarte mult probleme atat ca sender cat si pe partea de hosting. Mailurile trimise cu mail() sunt trimise de pe nobody@domeniu si de multe ori sunt considerate spam - pentru ca se trimit foarte multe mailuri de la aceeasi adresa si pentru ca sunt si altii care folosesc aceeasi adresa si de foarte multe ori chiar e vorba de spam.
Mai bine folosesti autentificare si trimiti asa. Sunt mult mai mari sansele ca mesajele sa ajunga in inbox.
Ce imi place cand oamenii se apuca sa recicleze scripturile lui Zero postate in vremurile bune ale xhost.ro. Inseamna ca meritau folosite. Hai, sariti pe capul meu si spuneti ca nu e asa!
Pai daca e asa, atunci toata stima pentru Zero! Cu multumiri!
PS Agkelos are dreptate, din motive de securitate server, smtp este preferabil...si pentru firma hosting si pentru mine, care folosesc scriptul. Asta pentru binele tuturor.
Mark Twain - "N-am lasat niciodata scoala sa-mi afecteze educatia."
Mark Twain - "Cel mai bun mod de a te inveseli este sa incerci sa inveselesti pe altcineva."
Script pentru trimitere e-mail ( care nu dea eroare in legatura cu persoana care a trimis e-mail-ul gen "nobody@domeniu", datorita utilizarii incorecte a functiei mail() )
mymail.php:
<?
//----------------- Destinatia mesajului si Subiectul acestuia
$to = "webmaster@nume.com";
$subject = "Formular contact online: {$_POST['ams']['Destinatia']} ";
$from = $_POST['ams']['E-mail'];
//----------------- preiau datele si creez mesajul
$valid=1;
$message ='';
foreach ($_POST['ams'] as $k=>$v){
if (trim($v)=='')$valid=0;
$k = str_replace('_',' ',$k);
$message .="$k : $v<br>";
}
$message .="<hr />IP: {$_SERVER['REMOTE_ADDR']}";
// faza asta cu ip-ul am adaugat`o pentru a putea avea si ip-ul celui care are chef
//de glume si trimite mail-uri aiurea.
//------------------ Functia mail cu HTML support
function sndmail($from,$to,$subject,$message){
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From:".$from ."\r\n";
mail($to, $subject, $message, $headers);
}
//------------------ Trimit Mailul
if ($valid=='1') {
sndmail($from,$to,$subject,$message);
//------------------ Afisez mesaj de confirmare / incarc pagina de confirmare
header( 'Location: http://www.nume.com/fisier_confirmare.html' ) ;
}
//------------------ Afisez mesaj de eroare / incarc pagina de eroare
else header( 'Location: http://www.nume.com/fisier_eroare.html' ) ;
?>
------------------------------------------------------------
In continuare, formularul de contact.
-----------------------------------------------------------
<span class="style1">Toate campurile sunt obligatorii !!! Va rugam sa completati formularul in intregime! </span>
Preiau toate informatiile din campuri intr-un vector ( array-ul ams[] ), si astfel in php nu trebuie sa dau $_POST pt fiecare camp in parte, ci le preiau pe toate printr-un FOR.
E mai usor cand ai foarte multe campuri, formulare mari, etc. Nu stai sa preiei fiecare camp, ci pur si simplu le iei pe toate, oricate ar fi .
In php prin folosirea variabile $From , nu vor mai aparea probleme de genul "sender = nume@somehost.sometld " ci va aparea e-mail-ul completat in campul E-MAIL.
Cam atat.. ca e tarziu si maine am examen. Daca aveti intrebari, just ask. Script-ul asta il folosesc eu la formularele mele de contact. Asa ca.. e oarecum personalizat pentru ceea ce am eu nevoie ( vezi faza cu destinatie si select-ul cu cele 4 optiuni ).