Вероятно бихте искали да получвате съобщения, мнемия въпроси и други от посетителите на вашия сайт. Естествено това може да стане като просто публикувате своя e-mail на сайта. Това обаче не е много добра идея. Помислете само за СПАМ –а с който ще ви залеят, след като мейл адреса ви стане публично исвестен и достъпен за автоматизираните програми за събиране на мейли.
Урокът съдържа 2 части:
- Създаване на HTML код, който генерира формата в браузъра. Този код можете да включите във вашата страница за контакти или да изпробвате, като го запишете в PHP файл, както е в примера тук.
- Създаване на PHP код, който получава данните от формата и ги изпраща като e-mail.
Ако желаете да пробвате примера на вашия компютър ще трябва освен web сървър с
PHP процесор да инсталирате и Mail сървър. Ето 2 възможностти:
- ArGo Mail Server Freeware
- Kerio Mail server (PC+MAC, Free Trial)
Ако използвате PHP Web хостинг, не се тревожете. Нормално хосинга включва mail сървър.
Създаване на формата
Изглед в браузъра
Code: (contact.php)
CODE1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| …
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1">
<tr>
<td>
<form name="mail_from" method="post" action="send_contact.php">
<table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr>
<td width="16%">Subject</td>
<td width="2%">:</td>
<td width="82%">
<input name="subject" type="text" id="subject" size="50">
</td>
</tr>
<tr>
<td>Detail</td>
<td>:</td>
<td>
<textarea name="detail" cols="50" rows="4" id="detail"></textarea>
</td>
</tr>
<tr>
<td>Name</td>
<td>:</td>
<td><input name="name" type="text" id="name" size="50"></td>
</tr>
<tr>
<td>Email</td>
<td>:</td>
<td>
<input name="customer_mail" type="text" id="customer_mail" size="50">
</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td>
<input type="submit" name="Submit" value="Submit">
<input type="reset" value="Reset">
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
… |
Code: (send_contact.php)
CODE1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| <?php
$subject = "$subject";
$message = "$detail";
$mail_from = "$customer_mail";
$header = "from: $name <$mail_from>";
$to = 'someone@somewhere.com';
$send_contact = mail($to, $subject, $message, $header);
if ($send_contact) {
echo "Съобщението е прието.";
}
else {
echo "Грешка! Съобщението не е прието успешно!";
}
?> |
В този урок беше представен опростен, но работещ вариянт на „Feedback” система. Целта е да се покаже идеята. По нататък можете да подобрите системата според вашите нужди. Например можете да добавите
JavaScript за формална залидизация преди изпращане на формата:
CODE1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| <script type="text/javaScript">
function checkFormData( f )
{
f.subject.value = trim(f.subject.value);
.....
if(f.subject.value == 0 )
{
f.subject.focus();
window.alert("Моля въведете темата на съобщението!");
return false;
}
.....
return true;
}
</script> |
И съответно да добавите извикване на тази функция в
HTML кода:
CODE1
| <form name="mail_from" method="post" action="send_contact.php" onSubmit="return checkFormData(this)"> |
Можете в
checkFormData() да добавите и проверка за формална фалидност на мейла.
Също така добра идея е при грешка в send_contact.php да върнете страницата с формата, като включите съобщението за грешка и попълните полета, така както са били при Submit.
Тъй като това не е тема на този урок, няма да разглеждаме тук техниките за реализиране на тези и други възможни подобрения.
Източник: phpeasystep.com