Jump to content

[PHP] Formular de contact


MaryMihai10RPG2
 Share

Recommended Posts

Ce este formularul de contact?

De regula, paginile web detin pe langa sectiunile cu un continut specific si o pagina de contact cu datele de contact ale firmei si un formular de contact pentru a livra rapid mesaje. Un astfel de formular se poate crea relativ usor folosind functia mail() din PHP.

Iata cum va arata formularul pe care il vom defini in continuare:

 

  Formular de contact simplu
Nume:
Email:
Subiect:
Mesaj:
 


Pentru inceput, vom scrie codul HTML ce va afisa formularul respectiv:

<table width="400" border="0" cellpadding="2" cellspacing="2">
    <tr>
        <th width="70">&nbsp;</td>
        <th>Formular de contact simplu<hr/></td>
    </tr>
    <form name="formular" method="post" action="<?php echo $PHP_SELF; ?>">
    <tr>
        <td class="label">Nume:</td>
        <td><input type="text" name="nume" value="<?php echo $_POST['nume']; ?>"> <?php echo $verifica1; ?></td>
    </tr>
    <tr>
        <td class="label">Email:</td>
        <td><input type="text" name="email" value="<?php echo $_POST['email']; ?>"> <?php echo $verifica2; ?></td>
    </tr>
    <tr>
        <td class="label">Subiect:</td>
        <td><input type="text" name="subiect" value="<?php echo $_POST['subiect']; ?>"> <?php echo $verifica3; ?></td>
    </tr>
    <tr>
        <td class="label">Mesaj:</td>
        <td><textarea rows="4" cols="30" name="mesaj"><?php echo $_POST['mesaj']; ?></textarea><?php echo $verifica4; ?></td>
    </tr>
    <tr>
        <td class="label"></td>
        <td><input type="submit" name="trimite" value="Trimite" class="buton"></td>
    </tr>
    </form>
</table>

Copiaza codul HTML si salveaza-l intr-un fisier contact.php. Ceea ce trebuie sa retii este ca acest cod creeaza trei casute de tip input in care utilizatorul va introduce numele, adresa de email si subiectul mesajului si o casuta de tip textarea in care utilizatorul va scrie continutul mesajului. Linia <input type="submit" name="trimite" value="Trimite" class="buton"> defineste un buton care, la apasare, va trimite formularul cu toate datele completate catre fisierul specificat prin atributul action al tag-ului <form> (in acest caz fisierul curent dat de variabila globala $PHP_SELF).

Pentru a nu obliga utilizatorul sa completeze din nou campurile in cazul unei erori, vom folosi functia echo in interiorul atributului value al input-urilor si in interiorul campului textarea. De exemplu, atributul value din campul nume va fi completat astfel:

value="<? echo $_POST['nume'];

Aceste valori sunt necesare deoarece validarea datelor este facuta in php, dupa transmiterea formularului; ele pot lipsi daca verificarea se face inainte de submit, cu javascript.

Validarea datelor

In continuare vom prelua datele transmise de formularul html si le vom verifica. In acelasi fisier (contact.php), scrie codul de mai jos:

<?php
// Daca este activat butonul de submit
if (isset($_POST['trimite'])) {
 
    // Citim din formular numele utilizatorului
    $nume = $_POST['nume'];
    
    // Citim din formular subiectul mesajului trimis
    $subiect = $_POST['subiect'];
    
    // Citim din formular mesajul
    $mesaj = $_POST['mesaj'];
    
    // Citim din formular adresa de email a vizitatorului
    $email = $_POST['email'];
    
    // Definim o variabila in care retinem adresa de email a administratorului
    $to ='admin@domeniu.com';
}
?>

Pentru inceput, am verificat daca butonul de submit a fost apasat, apoi am preluat din formular informatiile cu privire la utilizator (nume / email / subiect) si mesajul acestuia. In final, am creat o variabila cu adresa de email a administratorului ce va primi toate mesajele (aceasta va fi inlocuita de fiecare cu adresa corecta).

Tot in cadrul instructiunii conditionale ce verifica apasarea butonului (if (isset($_POST['trimite']))) facem si validarea datelor. Fiecarui camp din formularul de contact ii este atribuita o variabila. Inainte de a trimite mesajul verificam daca fiecare din aceste variabile este completata, apoi ,in dreptul fiecarui camp din formular, afisam o imagine de succes sau eroare, in functie de caz. Imaginile sunt stocate in variabilele $verifica1, $verifica2, $verifica3 si $verifica4, afisate cu ajutorul functiei echo, astfel: <? echo $verifica1; ?>.

 

<?php
if($_POST['nume'] != ""){
    $verifica1 = "<img src='images/ok.png' width='20px'>";
} else{
    $verifica1 = "<img src='eroare.png' width='20px'>";
}
 
if($_POST['email'] != ""){
    $verifica2 = "<img src='images/ok.png' width='20px'>";
}
else{
    $verifica2 = "<img src='eroare.png' width='20px'>";
}
 
if($_POST['subiect'] != ""){
    $verifica3 = "<img src='images/ok.png' width='20px'>";
}
else{
    $verifica3 = "<img src='eroare.png' width='20px'>";
}
 
if($_POST['mesaj'] != ""){
    $verifica4 = "<img src='images/ok.png' width='20px'>";
}
else{
    $verifica4 = "<img src='eroare.png' width='20px'>";
}
?>

Trimiterea mesajului

Daca toate campurile sunt completate, trimitem mesajul catre adresa de email a administratorului. 

<?php 
if($_POST['nume'] != "" && $_POST['email'] != "" && $_POST['subiect'] != "" && $_POST['mesaj'] != ""){
    
    $header = "From: $nume <$email>";
    
    $send = mail($to,$subiect,$mesaj,$header);
    if ($send){
        echo "<div class='notificare'>$verifica4 Mesajul tau a fost trimis. </div>";
    } else {
        echo "Mesajul nu a putut fi trimis din cauza unei erori.";
    }
}
?>

Sirul de caractere from: $nume <$email> ne ajuta sa specificam numele si adresa de email a expeditorului. Functia mail() accepta mai multe tipuri de headere, cum ar fi adresa CC, adresa de reply, formatul mesajului (html sau text), etc. Iata un exemplu:

<?php
// Pentru a trimite un mesaj in format HTML, trebuie sa specificam Content-type
$header  = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 
// Headere aditionale
$header .= 'To: Nume destinatar 1 <destinatar1@exemplu.com>, Nume destinatar 2 <destinatar2@exemplu.com>' . "\r\n";
$header .= 'From: Nume expeditor <expeditor@exemplu.com>' . "\r\n";
$header .= 'Cc: adresa_cc@exemplu.com' . "\r\n";
$header .= 'Bcc: adresa_bcc@exemplu.com' . "\r\n";
?>\

 

 

 

 

Edited by Roby
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.