Cursuri online, WebDesign, html, css, php, mysql, linux | Invata-Online.ro
IntroducereScrierea scripturilor PHP elementareTipuri de siruri si variabileVariabile si operatori PHPUtilizare formulare HTML cu PHP, $ GET si $ POSTVariabile de mediu si eroriConstante si tipuri de variabileInstructiuni conditionale if() elseInstructiuni conditionale switchInstructiuni repetitive for() si while()Utilizare matrice ArrayUtilizare Array (matrice) (2)Creare tabel HTML din ArrayUtilizarea functiilorVariabile si referinte in functiiData si Timpul in PHPLucrul cu siruri (1)Lucrul cu siruri (2)Expresii regulate, regexUtilizarea variabilelor cookieLucrul cu fisiere (1)Lucrul cu fisiere (2)Lucrul cu fisiere (3)Utilizarea cataloagelor (Directoare)Utilizarea de sesiuni PHPOptiuni pentru utilizarea caracterelor specialeNotiuni fundamentale despre bazele de date si SQL (1)Notiuni fundamentale despre bazele de date si SQL (2)Notiuni fundamentale despre bazele de date si SQL (3)PHP MySQL Introducere si Tipuri de DatePHP MySQL utilizare MySQLiPHP MySQL INSERT INTOPHP MySQL SELECT, ORDER BYSelect in doua tabele MySQLMySQL INNER JOIN, LEFT JOIN, RIGHT JOINPHP MySQL WHERE si LIKEPHP MySQL UPDATEPHP MySQL DELETEPHP PDO Introducere si Conectari la Baze de DatePHP PDO exec (INSERT, UPDATE, DELETE) MySQLPHP PDO Select, fetchPHP PDO prepare si executePHP PDO setAttribute si beginTransactionPHP Functii Anonime ClosuresTrimitere date la o adresa de e mailTrimitere e mail cu tag uri si atasamentCreare imagini cu PHPCreare PDF cu PHPCreare PDF cu PHP (2)Utilizare FTP cu PHPPHP OOP Clase si Obiecte, Metoda constructorPHP OOP metode Accesor si DestructorOOP Constante, Proprietati si Metode StaticePHP OOP Clase extinse si MostenireMetode magice get, set, call, toStringOOP Clase abstract si interfaceFunctii cu Parametri object si arrayInlantuire mai multe metode in PHP OOPPHP getElementById si getElementsByTagNameLucru cu atribute HTML in PHPDocumente XMLLucru cu XML DOMLucru cu XML SAXPHP XML SimpleXMLUtilizarea bazelor de date folosind PHPUtilizarea bazelor de date folosind PHP (2)Lucrul cu baze de date MySQL, seturi de rezultateFunctii pentru ArrayFunctii PHP matematiceFunctii pentru lucru cu functiiFunctii pentru siruri (strings)Functii pentru fisiere si directoareMySQL Alias si functiiFunctii utile pentru lucrul cu imaginiFunctii PHP clase si obiecte

Trimitere date la o adresa de e-mail

  • Invatati sa trimiteti mesaje si date dintr-un formular la o casuta de e-mail.

Este util sa avem pe o pagina din site un formular prin care vizitatorii sa poata trimite mesaje la o adresa de e-mail.
Am putea lasa pe pagina doar adresa de e-mail la care vizitatorii sa ne poata contacta, dar aceasta metoda (comoda pt. webmaster) nu este indicata. In primul rand din cauza programelor bot care circula pe net si colecteaza adresele de e-mail de pe site-uri pentru ca mai tarziu sa transmita mail-uri spam. In al doilea rand este mai simplu si mai rapid pentru vizitator sa trimita mesajul direct de pe site.

In cadrul acestei lectii este explicat un mod simplu de utilizare a limbajului PHP pentru a expedia la o adresa de e-mail date sub forma de text, preluate de la un formular HTML.
Pentru a putea expedia datele la adresa de mail, scripturile PHP trebuie sa fie capabile de a obtine accesul la serviciile SMTP (Simple Mail Transfer Protocol).
Daca folositi serviciile oferite de un "web hosting", majoritatea au implementate aceste functii.
Daca folositi propriul sistem pentru gazduirea site-ului, sau pentru teste, este nevoie sa aveti instalat si un server SMTP, acesta preia datele prelucrate de modulul PHP si le trimite la adresa de e-mail.

Expedierea mesajelor de e-mail

Configuratia PHP standard accepta expedierea mesajelor de e-mail prin intermediul SMTP (abreviere de la Simple Mail Transfer Protocol). Acesta este protocolul standard folosit pentru transferul mesajelor de e-mail, prin intermediul Internetului.
Mesajele de e-mail sunt alcatuite din doua parti: o serie de antete de mesaj si un corp.

  • - Antetele de mesaj indica adresa destinatarului si subiectul mail-ului, precum si alte informatii.
  • - Corpul contine mesajul in sine.
Pentru a trimite datele la o adresa de e-mail, se foloseste functia mail(), care preia 3 argumente principale, avand urmatoarea forma:
  • mail($to, $subject, $message)
Unde, in ordinea argumentelor:
  • - primul argument, aici variabila "$to", va contine adresa de e-mail a destinatarului (unde va fi trimis mesajul)
  • - al doilea argument, aici variabila "$subject", va contine subiect-ul mail-ului
  • - al treilea argument, aici variabila "$message" va contine mesajul
Functia "mail()" poate contine si alte adrese de e-mail optionale, astfel un al patrulea argument poate fi "From", care indica adresa de e-mail a expeditorului (cel care trimite mesajul).
Functia ar avea astfel urmatoarea forma:
  • mail($to, $subject, $message, $from )
- Variabila "$from" trebuie sa contina in sir cuvantul "From: " inaintea adresei de e-mail, adica asa:
            $from="From: adresa@de.mail";
- Daca argumentul "$from" nu este specificat, serverul va transmite automat aceasta adresa (in functie de cum este configurat). Astfel, cand primim mail-ul, pe langa subiect vom avea adresa expeditorului, si daca nu este specificata, putem vedea ceva de genul "nobody@localhost.ro"

Datele pentru aceste argumente, in special al treilea (aici "$message"), pot fi preluate dintr-un formular HTML, folosind functia "$_POST".
Functia "mail()" returneaza TRUE daca mail-ul a fost acceptat pentru expediere, in caz contrar returneaza FALSE.

Iata un script PHP simplu care va trimite mesaje la o adresa de e-mail:
<?php
// Verifica daca au fost trimise datele de la formular
if (isset($_POST['email']) && isset($_POST['mesaj'])) {
    $to = 'adresa_ta@de.mail';                 // Adresa unde va fi trimis mesajul
    $subiect = 'Mesaj de pe site';
    $mesaj = $_POST['mesaj'];
    $from = 'From: '. $_POST['email'];

    // PHP trimite datele la serverul de e-mail
    if (mail($to, $subiect, $mesaj, $from)) {
              echo 'Mesajul a fost trimis cu succes.';
    }
    else {
              echo 'Eroare, mesajul nu a putut fi expediat.';
    }
}
?>
- Intai se verifica (cu isset()) daca au fost trimise date de la formularul HTML. Fara aceasta verificare, s-ar expedia mesaje de e-mail ori de cate ori cineva (intentionat) acceseaza direct fisierul php cu scriptul.
- Variabilele "$mesaj" si "$from" preiau datele adaugate de vizitator in campurile unui formular HTML care au atributele 'name="mesaj"' si 'name="email"'.
Daca functia "mail()" este executata cu succes, va apare mesajul "Mesajul a fost trimis cu succes.", in caz contrar va afisa "Eroare, mesajul nu a putut fi expediat.".
Un model de cod HTML pentru crearea formularului care trimite datele la scriptul php de mai sus este urmatoru:
<h3>Trimiteti mesaj</h3>
<form name="form" method="post" action="nume_script.php">
<label>E-mail : </label>
<input type="text" name="email" size="20" /> <br />
<label>Scrie mesajul : </label> <br />
<textarea name="mesaj" cols="35" rows="6"></textarea> <br />
<input type="submit" value="Trimite" />
</form>
- "nume_script.php" este calea si numele fisierului in care se afla scriptul php de mai sus.
In browser va apare:

Trimiteti mesaj





La sectiunea Mailer gasiti un "mailer" mai complet.


- In Partea 2 invatati cum sa trimiteti mail-uri cu PHP care pot cotine tag-uri HTML si cod CSS.


Video indisponibil sau nu aveti acces la acest video!

Webdesign by Discant Solutions