Jump to content

Recommended Posts

Всем привет!

Кто-нибудь может подсказать, как на сайте (не движок) организовать форму обратной связи, чтобы отправленное сообщение отправлялось прямо на почту?

Link to post
Share on other sites

Есть вопрос? Задай его профессиональным веб-мастерам, SEO и другим специалистам!

  • Модератор

Пример на AJAX

 

Делаем форму отправки в теле страницы (вверху подключаем <script src="contactform.js"></script>)

<div id="note"></div>
<div id="fields">
<form class="m-form" action="" id="ajax-contact-form">
     <fieldset class="inlineLabels">
        <div class="ctrlHolder">
            <label for="name">Ваше имя:</label>
            <input type="text" name="name" id="name"  size="35" class="deftext required" value=""/>
            <p class="formHint"> <span class="error">Это поле обязательно для заполнения.</span></p>
        </div>
        <div class="ctrlHolder">
            <label for="phone">Контактный телефон:</label>
            <input type="text" name="phone" id="phone" size="35" class="deftext required" />
            <p class="formHint"> <span class="error">Это поле обязательно для заполнения.</span></p>
        </div>
        <div class="ctrlHolder">
            <label for="email">Адрес вашей электронной почты:</label>
            <input type="text" name="email" id="email" size="35" class="deftext required" value="" />
             <p class="formHint"> <span class="error">Это поле обязательно для заполнения.</span></p>           
        </div>
        <div class="ctrlHolder">
            <label for="message">Сообщение:</label>
            <textarea name="message" id="message" rows="25" cols="25" class="deftext required"></textarea>
            <p class="formHint"> <span class="error">Это поле обязательно для заполнения.</span></p>
        </div>
    </fieldset>
    <div class="buttonHolder">
        <button type="submit" class="m-button">Отправить</button>
    </div>
</form></div>

содержание contactform.js

jQuery(document).ready(function($) {


$("#ajax-contact-form").submit(function() {

var str = $(this).serialize();


$.ajax({

type: "POST",

url: "contact.php",

data: str,

success: function(msg) {


if(msg == 'OK') {

result = '<div class="notification_ok">Ваше сообщение было отправлено</div>';

$("#fields").hide();

} else {

result = msg;

}

$('#note').html(result);

}

});

return false;

});

});

содержание contact.php (где происходит обработка формы)

<?php  
$post = (!empty($_POST)) ? true : false;  
if($post)  
{  
$email = trim($_POST['email']);  
$name = htmlspecialchars($_POST['name']);  
$email = htmlspecialchars($_POST['email']);  
$mess = htmlspecialchars($_POST['message']);  
$phone = $_POST["phone"];
$message =$name.' - '.$phone.' - '.$email.'.....................'.$mess;
$error = '';  
if(!$name)  
{  
$error .= 'Вы не указали Ваше имя<br />';  
}  
// Check email  
function ValidateEmail($value)  
{  
$regex = '/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i';  
if($value == '') {  
return false;  
} else {  
$string = preg_replace($regex, '', $value);  
}  
return empty($string) ? true : false;  
}  
if(!$email)  
{  
$error .= 'Вы не указали ваш e-mail адрес<br />';  
}  
if($email && !ValidateEmail($email))  
{  
$error .= 'Проверьте правильность e-mail адреса<br />';  
}  
// Check message (length)  
if(!$message || strlen($message) < 50)  
{  
$error .= 'Пожалуйста, напишите нам подробнее. Вы практически ничего не написали<br />';
}  
if(!$error)  
{  
$headers=null;
$headers.="Content-Type: text/html; charset=utf-8\r\n";
$headers.="From: sait@mail.ru\r\n";  //от кого будет письмо
$subject = "Desing";
$to = 'mail@mail.ru'; //кому отправлять
$mail = mail($to, $subject, $message, $headers);
if($mail)  
{  
echo 'OK';  
}  
}  
else  
{  
echo '<div class="notification_error">'.$error.'</div>';  
}  
}  
?>

Не забудьте contact.php и contactform.js поставить в папку где и вызывается форма отправки почты (или пропишите к ним пути).

Link to post
Share on other sites
  • 1 month later...
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...