Сейчас: 18:10:08   26-го апреля 2024 г.
UsefulScript.ruСкриптыРазныеКод формы обратной связи
14
46

Простая форма обратной связи

В данной теме мы хотим рассказать Вам, как создать простую форму обратной связи.

Предлагаемая форма обратной связи отправляет введенные пользователями данные на сервер, откуда они будут отправлены на почтовый ящик, указанный в скрипте.


Ниже мы хотим привести пример предлагаемой нами формы обратной связи:

Только не пытайтесь отправить нам сообщение через данную форму обратной связи, так как она приведена для примера. Рабочая форма для связи с нами расположена на страничке обратной связи.


Для добавления точно такой же формы обратной связи, как в примере, приведенном выше, добавьте в то место вашей странички, где Вы планируете разместить данную форму, следующий код:

PHP код:
<?php
$c 
rand(100,450);
$c2 rand(1,50);
echo 
'<form method="POST" class="feedback">Отправить сообщение администрации';
echo 
'<textarea name="message">'.$_SESSION["message"].'</textarea>';
echo 
'<div id="login">Ваше имя: ';
echo 
'<input type="text" name="login" value="'.$_SESSION["login"].'"></div>';
echo 
'<div id="mail">E-mail: ';
echo 
'<input type="text" name="mail" value="'.$_SESSION["mail"].'"></div>';
echo 
'<div id="key">'.$c.' + '.$c2.' = ';
echo 
'<input type="hidden" name="key" value="'.md5($c+$c2).'">';
echo 
'<input type="text" name="summ_key" size="4"> ';
echo 
'<input type="submit" value="Отправить"></div></form>';

if (
$_SESSION["notice"]!=''){
    echo 
$_SESSION["notice"];
    
$_SESSION["notice"] = '';
}
?>

Для того чтобы форма была оформлена точно так же, как и в примере, добавьте CSS стили:

HTML код:
<style type="text/css">
.
feedback {
    
width550px;
    
margin15px auto;
    
padding5px;
    
text-aligncenter;
    
background-color#CCCCCC;
    
border-radius7px;
    
border1px solid #666666;
}
.
feedback textarea width540pxheight80pxresizenone; }
.
feedback>div margin4px 0; }
.
feedback input[type="text"] { border1px solid #666666; }
#login { float: left; }
#key, #mail { text-align: right; }
</style>

Теперь остается лишь добавить в самое начало странички с формой обратной связи код обработки полученного сообщения и отправки его на почту администрации сайта:

PHP код:
<?php
if (session_id()==''session_start();
if (isset(
$_POST["key"])) {
 
$mail='admin@site.ru';                //Ваш почтовый ящик
 
$redirect=$_SERVER['HTTP_REFERER'];
 
$_SESSION["login"]=$_POST["login"];
 
$_SESSION["mail"]=$_POST["mail"];
 
$_SESSION["message"]=$_POST["message"];

 if (
$_POST["key"]==md5($_POST["summ_key"])) {
    if (
$_POST["login"]!='' and $_POST["message"]!='' and $_POST["mail"]!='') {
        
$subject="Сообщение через форму обратной связи";
        
$msg='Имя: '.htmlspecialchars($_SESSION["login"]).PHP_EOL;
        
$msg.='E-mail: '.htmlspecialchars($_SESSION["mail"]).PHP_EOL;
        
$msg.=htmlspecialchars($_SESSION["message"]);

        
$headers="MIME-Version: 1.0\r\n";
        
$headers.="Content-type: text/plain; charset=utf-8\r\n";
        
$headers.="From: site.ru";
        
mail($mail$subject$msg$headers);
        
$_SESSION["notice"]='Ваше сообщение было отправлено!';
        
$_SESSION["login"]='';
        
$_SESSION["message"]='';
        
$_SESSION["mail"]='';
        
header("Location: $redirect");
        exit;
    }
    else 
$_SESSION["notice"]="Вы заполнили не все поля!";
 }
 else {
    
$_SESSION["notice"]="Неправильный проверочный код!";
    
header("Location: $redirect");
    exit;
 }
}
?>

Если Вы все скопировали и разместили на своем сайте правильно, то у Вас будет своя собственная формой обратной связи как в примере. И не забудьте правильно указать свой почтовый ящик в переменной $mail.

Дата создания: 23:52:27 02.07.2016 г.
Посещений: 18186 раз(а).

Комментарии посетителей (3 шт.):
Roman
-3
# 3396
(11:46:06  30.08.2016 г.)

У меня почему-то с одного отправленного письма, через эту форму, сразу четыре письма в спам приходят.
Ответить

Алексей
0
# 4498
(16:13:22  22.07.2019 г.)

У меня не работает!
P.s. Сделайте задачу от ботов (799+9=) попроще!
Ответить

Иван
0
# 4866
(19:28:58  09.10.2021 г.)

А чё? Я за три секунды решил.
Ответить

Закрыть
Ваше имя:
212 + 9 =
Добавить комментарий:
Ваше имя:
212 + 9 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 5

Мешает ли Вам реклама?