Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Проста система за обратна връзка с HTML форма и е-mail чрез PHP
  1. HTML формуляр
     
Автор  plamenSm (28.03.2008 13:55)  съобщение до автора
Погледнат  2964 пъти  добави към любими
Оценка  добави коментар
Гласове  4  изпрати на приятел
Коментари  (1)  абонирай се за PHP
    Страница 1 / 1

 



Вероятно бихте искали да получвате съобщения, мнемия въпроси и други от посетителите на вашия сайт. Естествено това може да стане като просто публикувате своя 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)

CODE
1
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)

CODE
1
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";
// Details
$message = "$detail";

// Mail на изпращача
$mail_from = "$customer_mail";
// From
$header = "from: $name <$mail_from>";

// Тук запишете вашия e-mail
$to = 'someone@somewhere.com';

$send_contact = mail($to, $subject, $message, $header);

// Проверка дали писмото е изпратено успешно
if ($send_contact) {
   
echo "Съобщението е прието.";
}
else {
   
echo "Грешка! Съобщението не е прието успешно!";
   
// За съжаление функцията mail() не връща информация за причината за грешката.
}
?>

В този урок беше представен опростен, но работещ вариянт на „Feedback” система. Целта е да се покаже идеята. По нататък можете да подобрите системата според вашите нужди. Например можете да добавите JavaScript за формална залидизация преди изпращане на формата:

CODE
1
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 кода:

CODE
1
<form name="mail_from" method="post" action="send_contact.php" onSubmit="return checkFormData(this)">

Можете в checkFormData() да добавите и проверка за формална фалидност на мейла.

Също така добра идея е при грешка в send_contact.php да върнете страницата с формата, като включите съобщението за грешка и попълните полета, така както са били при Submit.

Тъй като това не е тема на този урок, няма да разглеждаме тук техниките за реализиране на тези и други възможни подобрения.


Източник: phpeasystep.com



   


Ключови думи: PHP html формуляр обратна връзка с PHP


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

Съжалявам за досадния пропуск на ред 7 в примерния код за формална проверка: checkFormData()

if( f.subject.value.length == 0 )

  plamenSm на 13.04.2008 19:43

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008