
Очень часто на сайтах и блогах мы видим формы для отправки сообщений автору или администратору.
Почему люди просто не пишут свой 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
}
?>
Посмотреть, как выглядит такая форма, можно здесь: http://map.lviv.ua/mail.html.
Для того, чтобы код корректно заработал, необходимо прописать в нем Ваш 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 файлах.


19.11.2011