Formular de contact și trimitere e-mail în PHP

A avea un formular de contact pe site-ul dvs. web este vital atunci când trebuie să știți ce cred vizitatorii site-ului dvs. despre site-ul dvs. web. Vom crea mai întâi un simplu formular de contact cu 3 câmpuri – Adresă de e-mail, Nume, Comentarii. Voi folosi un tabel pentru a alinia cele 3 câmpuri și butonul Trimite. Creați un fișier nou și inserați codul de mai jos în el. Salvați-l ca test.php și încărcați-l pe serverul dvs. web. Acum, aveți o pagină web (http://www.yourdomain.com/test.php) cu un simplu formular de contact pe ea.

<form action="test.php" method="post">
<table width="400" border="0" cellspacing="2" cellpadding="0">
<tr>
<td width="29%" class="bodytext">Your name:</td>
<td width="71%"><input name="name" type="text" id="name" size="32"></td>
</tr>
<tr>
<td class="bodytext">Email address:</td>
<td><input name="email" type="text" id="email" size="32"></td>
</tr>
<tr>
<td class="bodytext">Comment:</td>
<td><textarea name="comment" cols="45" rows="6" id="comment" class="bodytext"></textarea></td>
</tr>
<tr>
<td class="bodytext"> </td>
<td align="left" valign="top"><input type="submit" name="Submit" value="Send"></td>
</tr>
</table>
</form>

Apoi vom avea nevoie de codul PHP real care va trimite e-mailul atunci când va fi trimis formularul de mai sus. Va trebui să definim e-mailul la care ar trebui să fie trimis mesajul ($ToEmail) și, de asemenea, subiectul mesajului care va fi trimis ($EmailSubject). Schimbați email-ul dvs.@site.com la adresa dvs. de e-mail la care ar trebui să fie trimis mesajul și, de asemenea, adăugați un subiect adecvat pentru mesajul dvs. Variabila $mailheader este folosită pentru a defini antetul mesajului de e-mail. Setăm câmpurile De la, Răspuns la și Tipul de conținut pentru mesaj. Mai sunt câteva câmpuri care pot fi folosite, dar pentru acest exemplu le vom folosi doar 3. În funcție de configurația serverului dvs., poate fi necesar ca câmpurile De la și Răspuns la să fie o adresă de e-mail validă de la serverul dvs. Dacă aveți o nume de domeniu mysite.com, atunci ar trebui să utilizați o adresă de e-mail validă, cum ar fi contact@mysite.com. În acest exemplu, trimit e-mailul folosind adresa de e-mail reală care este trimisă prin formularul de pe site. În continuare, toate datele trimise prin formularul web sunt preluate din variabila $_POST și salvate în variabila $MESSAGE_BODY. Folosind funcția nl2br, veți face ca toate liniile noi din caseta de comentarii să apară ca linii noi și în mesajul dvs. de e-mail. Având toate datele necesare pentru mesajul nostru de e-mail, vom folosi funcția mail() care ne va trimite acel e-mail pentru noi.

<?php
$ToEmail = 'youremail@site.com';
$EmailSubject = 'Site contact form';
$mailheader = "From: ".$_POST["email"]."\r\n";
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$MESSAGE_BODY = "Name: ".$_POST["name"]."";
$MESSAGE_BODY .= "Email: ".$_POST["email"]."";
$MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"])."";
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");
?>

Tot ce trebuie să facem acum este să combinăm formularul web și codul de trimitere a e-mailurilor într-o singură pagină. Vom folosi o declarație IF pentru a verifica dacă formularul a fost trimis și, dacă da, va trimite acel e-mail și va afișa pe ecran un mesaj „Mesajul dvs. a fost trimis” în loc de formularul web.

<?php
if ($_POST["email"]<>'') {
$ToEmail = 'youremail@site.com';
$EmailSubject = 'Site contact form';
$mailheader = "From: ".$_POST["email"]."\r\n";
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$MESSAGE_BODY = "Name: ".$_POST["name"]."";
$MESSAGE_BODY .= "Email: ".$_POST["email"]."";
$MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"])."";
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");
?>
Your message was sent
<?php
} else {
?>
<form action="test.php" method="post">
<table width="400" border="0" cellspacing="2" cellpadding="0">
<tr>
<td width="29%" class="bodytext">Your name:</td>
<td width="71%"><input name="name" type="text" id="name" size="32"></td>
</tr>
<tr>
<td class="bodytext">Email address:</td>
<td><input name="email" type="text" id="email" size="32"></td>
</tr>
<tr>
<td class="bodytext">Comment:</td>
<td><textarea name="comment" cols="45" rows="6" id="comment" class="bodytext"></textarea></td>
</tr>
<tr>
<td class="bodytext"> </td>
<td align="left" valign="top"><input type="submit" name="Submit" value="Send"></td>
</tr>
</table>
</form>
<?php
};
?>

Similar Posts