Форма за обратна връзка
Как да получавате съобщения от посетители на сайта си.
Един от най-добрите начини да развивате сайта си е да получавате обратна връзка от неговите посетители. Дори когато мислите, че всичко по сайта си сте направили идеално, има вероятност да сте изпуснали нещо, да има с какво още да улесните или зарадвате посетителите си. А какво е то - само те могат да ви кажат. Но много хора може да не си направят труда да отварят пощенските си кутии и от там да ви пишат. За такива случаи е добре да имате форма за обратна връзка, от която желаещите да ви оставят съобщение могат да го направят незабавно.
Как работи формата за обратна връзка?
Стандартната форма за обратна връзка съдържа няколко текстови полета - с име, мейл адрес на изпращача и самото съобщение. Когато се натисне бутон "изпрати", съобщението ще бъде изпратено на сървъра, където се намира сайта ви. След това, за да се изпрати съобщението като мейл до ваша пощенска кутия, е необходимо посланието да бъде обработено от команда на програмен език за сървъри - например PHP. Желателно е формата за обратна връзка да съдържа проверка за правилно попълнени полета с име, мейл адрес и съобщение. Понякога се случва човек да забрави да попълни някое от полетата и трябва да му се напомни да го стори, преди да е изпратил съобщението.
Примерен файл - форма за обратна връзка
В следващото поле в сиво е поместен кода на примерна форма за обратна връзка. Файлът работи с PHP команди и трябва да го запишете като PHP файл, т.е. с разширение .php (например feedback.php). Ако желаете, можете да изтеглите файла-форма за обратна връзка, който ползвам за този сайт - трябва да го разархивирате, да смените адреса на пощенската кутия с Вашия и да промените CSS частта, така че да съответства на стила на сайта Ви. Повечето хостинг компании (може би без безплатните) предлагат възможност за използване на PHP, но трябва сами да се убедите в това преди да изпробвате тази форма за обратна връзка.
Сменете означените с жълто места със своите данни или съобщения: най-вече своя мейл адрес. Формата е леко украсена от мен, но можете да я направите по свой вкус. Освен ако знаете какво правите, не е препоръчително да променяте PHP кода - дори изпускане на един знак ";" може да направи файла неизпълним.
След като запишете файла, сложете хипервръзка към него във всички страници, откъдето искате формата за обратна връзка да е достъпна. Можете да видите в действие формата за обратна връзка на www.parvisait.com
<?php header('Content-type: text/html; charset=utf-8');
?>
<style type="text/css">
.label{
text-align:right;
}
#submit{
text-align:center;
}
#body {
background-color:yellow;
}
</style>
<?php
$to='вашият мейл адрес';//попълнете с вашия мейл адрес, напр.
Е-мейл адресът e защитен от спам ботове.
$tema_pismo='Форма за обратна връзка: www.parvisait.com';
//това е съобщението, което ще се изписва в полето "относно" в писмата от формата за обратна връзка.
$potvyrzhdenie_tema='Потвърждение за изпратено писмо';
//това е съобщението, което ще се съдържа в полето "относно" на писмото-потвърждение, изпращано на потребителя.
$potvyrzhdenie_syobshtenie="Вашето писмо от формата за обратна връзка на
www.parvisait.com беше изпратено успешно. Изпращаме ви копие от съобщението:";
//текста на писмото-потвърждение, което автоматично се изпраща на потребителя.
$blagodarya='<h2>Благодаря за проявеното внимание!</h2>
<p>Съобщението Ви беше изпратено успешно и на Вашия мейл адрес бе
изпратено копие от него:</p>';
//текст на съобщението, което се извежда при успешно изпращане на съобщение от формата
$problem='<h2>Имаше проблем с изпращането на съобщението Ви!</h2>
<p>Проблемът най-вероятно се дължи на грешка от страна на сървъра. <br/>
Молим за извинение за причиненото неудобство. <br/>
Ако Ви е удобно, моля изпратете отново съобщението си.</p>';
//съобщение за грешка ако писмото не бъде изпратено поради грешка на сървъра.
$spam_no_more='<h2>Съобщението Ви съдържа непозволени символи! </h2>
<p>Поради опасност от спам-атака, съобщението <strong>НЕ</strong>
бе изпратено!</p>';
//в случай, че някой се опита да използва формата за спам операции, ще бъде предупреден, че е сложена защита.
$popylni='Моля, попълнете валиден мейл адрес и име.';
//ако потребителят пропусне да попълни адреса или текста на посланието си, ще бъде върнат обратно към формата.
$email='';
$body='';
$displayForm=true;
if ($_POST){
$email=filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$body=stripslashes($_POST['body']);
// валидиране на e-mail адреса
$valid=eregi('^([0-9a-z]+[-._+&])*[0-9a-z]+@([-0-9a-z]+[.])+[a-z]{2,6}$',$email);
$spam=eregi("(\r|\n)(to:|from:|cc:|bcc:)",$body);
$headers = "MIME-Version: 1.0" . "\r\n";
$headers.= "Content-type: text/html; charset=utf-8"."\r\n";
$headers_potvyrzhdenie=$headers."From:$to"."\r\n";
$headers.="From:$email"."\r\n";
if ($email && $body && $valid && !$spam){
if (mail($to,$tema_pismo,$body,$headers)
&& mail($email,$potvyrzhdenie_tema,$potvyrzhdenie_syobshtenie.$body,$headers_potvyrzhdenie))
{
$displayForm=false;
echo '<p>'.$blagodarya.'</p>';
echo '<p>'.htmlspecialchars($body).'</p>';
}else
{ // съобщението не бе изпратено поради грешка на сървъра
echo $problem;
}
}else if ($spam){ // спам опит
echo $spam_no_more;
}else{ // съобщение за непопълнени полета
echo'<p><strong>'.$popylni.'</strong></p>';
}
}
if ($displayForm){
?>
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
<table border="0">
<tr>
<td class="label"><label for="email">Вашият мейл адрес:</label></td>
<td>
<input type="text" name="email" id="email" value="<?php echo htmlspecialchars($email); ?>" size="30">
(мейл с копие от съобщението Ви ще бъде изпратен на този адрес)
</td>
</tr>
<tr>
<td class="label"><label for="body">Вашето съобщение:</label></td>
<td><textarea name="body" id="body" cols="60" rows="7">
<?php echo htmlspecialchars($body); ?>
</textarea></td>
</tr>
<tr><td id="submit" colspan="2"><button type="submit">Изпрати</button>
</td>
</tr>
</table>
</form>
<?php
}
?>
Ако решите, че "как се прави сайт" ръководството може да бъде полезно и за други хора, моля гласувайте за сайта: