Sign in to follow this  
Followers 0
Jeka778

Форма обратной связи.

6 posts in this topic

Всем привет!

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

Share this post


Link to post
Share on other sites

Пример на 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 поставить в папку где и вызывается форма отправки почты (или пропишите к ним пути).

glavseo and Jeka778 like this

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.