Curs Php-mysql

Part. 2


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.

Pentru a trimite datele la o adresa de e-mail, se foloseste functia mail(), care preia 3 argumente principale, avand urmatoarea forma: Unde, in ordinea argumentelor: 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: - 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.
Part. 2

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag se foloseste in <table> pentru a crea celula de tip "header"?
<thead> <th> <td>
<table><tr>
  <th>Title 1</th>
  <th>Title 2</th>
</tr></table>
Ce proprietate CSS seteaza distanta dintre randuri?
line-height word-spacing margin
.some_class {
  line-height: 150%;
}
Care functie deschide o noua fereastra.
alert() confirm() open()
document.getElementById("id_button").onclick = function(){
  window.open("http://coursesweb.net/");
}
Indicati functia PHP care returneaza un array cu numele fisierelor si directoarelor dintr-un director.
mkdir() scandir() readdir()
$ar_dir = scandir("dir_name");
var_export($ar_dir);
Care din urmatoarele forme a verbului "sleep" (a dormi) se foloseste pentru viitor?
sleeping slept will sleep
He will sleep there.
- El va dormi acolo.
Care din urmatoarele forme a verbului "dormir" (a dormi) se foloseste pentru viitor?
dormido dormirá durmiendo
Él dormirá allí.
- El va dormi acolo.
Expediere date la o adresa de e-mail

Last accessed pages

  1. Pronume posesiv (2429)
  2. Articolul din limba engleza - The article (69443)
  3. Substantivul din limba engleza - The Noun (59021)
  4. Verbe care schimba baza: e:ie (1895)
  5. Nu ma pot rani decat gandurile mele (44)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (695)
  2. Coduri pt culori (311)
  3. Exercitii engleza - English Tests and exercises - Grammar (306)
  4. Gramatica limbii engleze - Prezentare Generala (298)
  5. Cursuri limba engleza gratuite si lectii online (278)