Як зробити контактну форму на сайті

контактна форма

Дуже часто на сайтах та блогах ми бачимо форми для надсилання повідомлень автору чи адміністратору.

Чому люди просто не пишуть свій e-mail? На це можуть бути різні причини, насамперед, це захист від спаму, також буває що не хочуть «світити» свій мейл в Інтернеті або просто подобається дизайн контактної форми.

Отже, як зробити контактну форму на своєму сайті?

Багато систем управління сайтом, наприклад CMS Drupal, мають вбудований функціонал контактної форми і можна скористатися ним.

WordPress не має такої форми у стандартному комплекті, зате є хороший плагін Contact Form 7, встановивши який Ви отримаєте непогану контактну форму. Завантажити плагін можна звідси.

На даному блозі використовується саме така форма і подивитися, як вона виглядає, можна у розділі Контакти.

Якщо не має можливості скористатися засобами CMS для створення контактної форми, або сайт написаний "вручну" на html, або ж у Вас якісь особливі вимоги до неї, можна використати якийсь готовий скрипт або написати код власноруч.

Стосовно готових скриптів, то досить непоганий варіант, як на мене, php-скрипт "Форма 2.0", котрий можна завантажити звідси. Дана форма є доволі простою в установці, не використовує бази даних, має адмін-панель з досить гнучкими налаштування, містить картинку-каптчу для захисту від спаму та дозволяє надсилати файли.

Зовнішній вигляд форми можна пристосувати до дизайну Вашого сайту.

І насамкінець, розглянемо простенький php-код, котрий дозволяє розмістити на сторінці контактну форму.

<?php
if (isset($_POST['act'])&& $_POST['act']=='act'){
$name=$_POST['name'];
$email=$_POST['email'];
$tema = $_POST['tema'];
$mes=$_POST['mes'];
$to = "vash_email@gmail.com";
$date=date('d M Y, H:i:s');
$str=$date."\nПише ".$name." Його email ".$email."\n".$mes;
$m=@mail( $to, $tema, $str, "From: MySite");
if(!$m)exit("<p align=center>Помилка! Спробуйте ще раз<br><br><INPUT TYPE='button' VALUE='НАЗАД' onClick='history.go(-1)'>
<td align=center></td></tr><tr></tr></table>");else
exit("<p align=center>Вашого листа надіслано!<br><br><INPUT TYPE='button' VALUE='НАЗАД' onClick='history.go(-1)'>
<td align=center></td></tr><tr></tr></table>");
}else{
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
Ваше ім'я: <input type="text" name="name"><br>
e-mail: <input type="text" name="email"><br>
Тема листа: <input type="text" name="tema"><br><br>
Текст листа:<br>
<textarea name="mes" rows=5 cols=60 ></textarea><br><br>
<input type="hidden" name="act" value="act">
<input type="submit" name="submit" value="Надіслати">
<input type="reset" name="reset" value="Очистити">
</form></center>
<?php
}
?>

Для того, щоб код коректно запрацював, необхідно прописати у ньому Ваш email замість vash_email@gmail.com. Також замість MySite можна написати назву сайту, щоб Ви знали, звідки саме прийшов лист, якщо один e-mail використовується на декількох сайтах.

Зверніть увагу - якщо вставляєте цей код у html файл, потурбуйтеся, щоб сервер зміг виконати php-код у html файлі. Для цього у файл .htaccess у корні сайту слід дописати рядок

AddHandler application/x-httpd-php .php .html .htm

або

AddHandler application/x-httpd-php5 .php .html .htm

або

AddType application/x-httpd-php .php .html .htm

Який саме – залежить від програмного забезпечення, встановленого на сервері. Пробуйте по порядку кожен з них, який запрацює, або уточніть у Вашого хостера, як додати підтримку php-коду у html файлах.

Також пропоную переглянути відеоурок про те, як зробити форму зв'язку на сайті maque.org.ua.

Коментарі тимчасово вимкнені / Комментарии временно отключены