|
|
Форма обратной связи
Мы приветствуем публикацию дополнительной информации, которая может оказаться полезной другим посетителям сайта. Для отправки отчета о своем путешествии, или статьи для публикации на сайте вы можете воспользоваться формой предложенной ниже. Материал прикрепляется в виде заархивированного файла (.rar, .zip, .ace). Архив отчета должен содержать текст с указанием автора; фотографии и их описание; время прохождения маршрута; привествуются карты с обозначенной ниткой маршрута. После подготовки, материалы будут опубликованы с указанием авторства на сайте.
Для публикации новых данных о домах и базах отдыха, пансионатах, гостиницах, контактных телефонов такси, расписаниях движения автотранспорта, администраций заповедников и др., внесения изменений в опубликованую информацию Вы также можете связаться с редакцией через форму обратной связи. Обратите внимание, символом * отмечены поля обязательные для заполнения.
* отмечены поля обязательные для заполнения.
}
function complete_mail() {
// $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично
$_POST['title'] = substr(htmlspecialchars(trim($_POST['title'])), 0, 1000);
$_POST['mess'] = substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000);
$_POST['name'] = substr(htmlspecialchars(trim($_POST['name'])), 0, 30);
$_POST['tel'] = substr(htmlspecialchars(trim($_POST['tel'])), 0, 30);
$_POST['email'] = substr(htmlspecialchars(trim($_POST['email'])), 0, 50);
// если не заполнено поле "Имя" - показываем ошибку 0
if (empty($_POST['name']))
output_err(0);
// если неправильно заполнено поле email - показываем ошибку 1
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email']))
output_err(1);
// если не заполнено поле "Сообщение" - показываем ошибку 2
if(empty($_POST['mess']))
output_err(2);
//указываем что переменная $date_m это дата на сервере
$date_m = date("m.d.y");
// Если переменная $date_m строго равна форме "date" то все ок если нет то на ошибку 3
if($date_m != ($_POST['date']))
output_err(3);
// обратите внимание, теперь мы можем писать красивые письма, с помощью html тегов ;-)
$mess = '
Имя отправителя:'.$_POST['name'].'
Контактный телефон:'.$_POST['tel'].'
Контактный email:'.$_POST['email'].'
'.$_POST['mess'];
// подключаем файл класса для отправки почты
require 'class.phpmailer.php';
$mail = new PHPMailer();
$mail->From = 'admin@trasa.ru'; // от кого
$mail->FromName = 'www.php-mail.ru'; // от кого
$mail->AddAddress('trasa@mail.ru', 'Имя'); // кому - адрес, Имя
$mail->IsHTML(true); // выставляем формат письма HTML
$mail->Subject = $_POST['title']; // тема письма
// если был файл, то прикрепляем его к письму
if(isset($_FILES['attachfile'])) {
if($_FILES['attachfile']['error'] == 0){
$mail->AddAttachment($_FILES['attachfile']['tmp_name'], $_FILES['attachfile']['name']);
}
}
$mail->Body = $mess;
// отправляем наше письмо
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
echo ' Спасибо! Ваше письмо отправлено.Мы обязательно ответим Вам в ближайшее время';
}
function output_err($num)
{
$err[0] = 'ОШИБКА! Не введено имя.';
$err[1] = 'ОШИБКА! Неверно введен e-mail.';
$err[2] = 'ОШИБКА! Не введено сообщение.';
$err[3] = 'Ой наверно вы робот? Неправельно введена дата!';
echo ' '.$err[$num].' ';
show_form();
exit();
}
if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>
|