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

12 июня 2019

Вот простейшая форма обратной связи, заточена под Bootstrap3. Отправляет на один или несколько e-mail 

СКАЧАТЬ АРХИВ

Из архива содержимое папки form-bootstrap положить в корень сайта

Там всего 2 картинки и файл post.php следующего содержания (кстати, поменяйте // e-mail админа)

<? 
    // ----------------------------конфигурация-------------------------- // 
    $adminemail="mail@narod.ru, mail@mail.ru";  // e-mail админа
    $date=date("d.m.y"); // число.месяц.год 
    $time=date("H:i"); // часы:минуты:секунды 
    $backurl="/";  // На какую страничку переходит после отправки письма 
    $ip = $_SERVER['REMOTE_ADDR']; 
    $ipp  =$_SERVER['HTTP_REFERER'];
    //---------------------------------------------------------------------- // 
    // Принимаем данные с формы 
    $name=$_POST['name']; 
    $email=$_POST['email']; 
    $msg=$_POST['message']; 
    // Проверяем валидность e-mail 
    if (!preg_match("|^([a-z0-9_.-]{1,20})@([a-z0-9.-]{1,20}).([a-z]{2,4})|is", 
    strtolower($email))) 
    { 
        echo 
        "<script language='Javascript'--><!-- 
        function reload() {location = 'javascript:history.back(1)'}; setTimeout('reload()', 3000); 
        //-->
        <center><img src="/err.jpg"><br>
        <b>Имя или e-mail указаны не верно<br>
        Вернитесь <a href="javascript:history.back(1)"><b>назад</b></a> и повторите попытку</b></center>"; 
 } 
    else 
    { 
        $msg="  
        Имя: $name 
        E-mail: $email  
        Комментарий: $msg 
        IP заказчика: $ip
        Адрес страницы, с которой сделан заказ:  $ipp
        "; 
        // Отправляем письмо админу  
        mail("$adminemail", "$date $time Сообщение 
        от $name", "$msg", "Content-type: text/plain; charset=utf-8"); 
        // Сохраняем в базу данных 
        $f = fopen("message.txt", "a+"); 
        fwrite($f," 
        $date $time Сообщение от $name"); 
        fwrite($f,"
        $msg "); 
        fwrite($f,"
        ---------------"); 
        fclose($f); 
        // Выводим сообщение пользователю 
        print "<script language="Javascript"><!-- 
        function reload() {location ='javascript:history.back(1)'}; setTimeout('reload()', 6000); 
        //--></script> 
        <center>
        <img src="/post.jpg"><br>
        <h1>Спасибо за обращение!</h1>
        <b>
        Через пару секунд вы будете перенаправлены обратно на Сайт
        </b></center>";  
        exit; 
 } 
?>

Код вывода формы на странице (вот он как раз под Bootstrap3)

<form action="/post.php" method="POST">            
    <div class="table-responsive">
        <table class="userform_table table table-striped" cellpadding="3">
            <tbody>    
                <tr>
                    <td style="width:40%">
                        Имя: 
                    </td>
                    <td> 
                        <input type="text" name="name"> 
                    </td>
                </tr>
                <tr>
                    <td>
                        E-mail: 
                    </td> 
                    <td>
                        <input type="text" name="email">
                    </td>
                </tr>
                <tr>
                    <td>
                        Сообщение: 
                    </td>
                    <td> 
                        <textarea rows="4" cols="40" name="message"></textarea>
                    </td>
                </tr>
                <tr>
                    <td>
                    </td>
                    <td>
                        <input type="submit" class="btn btn-default btn-lg" value="Отправить"> 
                    </td>
                </tr>
            </tbody>
        </table>
 </div>
</form>

А для того, чтобы надпись по умолчанию вывести в поле ввода, а потом скрыть при клике на него, нужно добавить к полю типа такого
onblur="javascript:if(this.value==''){this.value='Enter Search keywords'};" onfocus="if(this.value=='Enter Search keywords') {this.value='';}" value="Enter Search keywords"

На примере поля "Имя"

<textarea name="message" id="textarea" onclick="if(this.value=="Сообщение") this.value=""" onblur="if(this.value=="") this.value="Сообщение"" rows="3">    
 Сообщение
</textarea>

Вот готовое аккуратное решение, код вставки

<form action="/post.php" method="POST">
 <ul class="list-group">
        <li class="list-group-item"><input class="form-control" type="text" name="name" value="Имя" onblur="javascript:if(this.value==''){this.value='Имя'};" onfocus="if(this.value=='Имя') {this.value='';}"></li>
        <li class="list-group-item"><input class="form-control" type="text" name="email" value="Почта" onblur="javascript:if(this.value==''){this.value='Почта'};" onfocus="if(this.value=='Почта') {this.value='';}"></li>
        <li class="list-group-item"><textarea class="form-control" name="message" id="textarea" onclick="if(this.value=="Сообщение") this.value=""" onblur="if(this.value=="") this.value="Сообщение"" rows="3">Сообщение</textarea></li> 
        <li class="list-group-item"><input type="submit" class="btn btn-default btn-lg" value="Отправить"></li>
 </ul>
</form>

Кстати, в post.php можно запросто задать стиль.
Для этого в самом начале, перед <? записать его в
<style></style>