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 HTML5 defineste un text marcat, evidentiat?
<mark> <embed> <span>
<p>Cursuri graruite: <mark>MarPlo.net</mark> , jocuri, anime.</p>
Ce pseudo-clasa CSS defineste un stil la element cand mouse-ul e deasupra lui?
:focus :hover :active
a:hover {
  font-weight: bold;
  color: #00da01;
}
Clic pe functia ce returneaza un sir cu un numar rotunjit la x decimale.
toPrecision(x) toFixed(x) floor(x)
var num = 12.34567;
num = num.toFixed(2);
alert(num);       // 12.35
Indicati functia PHP care adauga continutul unui fisier intr-un array.
[) file() readfile()
$arr = file("a_file.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
var_export($arr);
Clic pe raspunsul potrivit la intrebarea: "What time is it?"
On the 7th of July 1996 It is a quarter to 5. Nice weather.
What time is it? It is a quarter to 5.
- Cat este ora? E 5 fara un sfert.
Indicati raspunsul potrivit la intrebarea: "¿Qué hora es?"
Hace buen tiempo. En el 7 de julio de 1996 Son las tres menos cuarto.
¿Qué hora es? Son las tres menos cuarto.
- Cat este ora? E 3 fara un sfert.
Expediere date la o adresa de e-mail

Last accessed pages

  1. Gramatica limbii spaniole. Indrumator si prezentare generala (66723)
  2. Alte forme complexe cu DIV si CSS (479)
  3. Introducere in HTML (24987)
  4. Pronume indirect (2216)
  5. Curs PHP MySQL, Tutoriale si Scripturi PHP (128379)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (767)
  2. Exercitii engleza - English Tests and exercises - Grammar (596)
  3. Prezentul simplu si continuu - Present Tense Simple and Continuous (587)
  4. Gramatica limbii engleze - Prezentare Generala (580)
  5. Prezentul simplu - Exercitii si teste incepatori (504)