Задать вопрос

Не работает отправка сообщения ,в чем дело?

Не выводит статус отправки,не понимаю в чем дело.Помогите пожалуйста.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
        <script>
            $(document).ready(function () {
                $(".done").click(function () {
                     $('#messageShow').hide();
                    var name = $(".name").val();
                    var email = $(".email").val();
                    var subject = $(".subject").val();
                    var message = $(".message").val();
                    var fail = "";
                    if (name.length < 3) fail = "Имя не меньше 3 символов";
                    else if (email.split('@').length - 1 == 0 || email.split('.').length - 1 == 0)
                        fail = "Вы ввели некорректный email";
                    else if (subject.length < 5)
                        fail = "Тема сообщения не меньше 5 символов";
                    else if (message.length < 20)
                        fail = "Cообщение не меньше 20 символов";
                    if (fail != ""){
                        $('#messageShow').html(fail + "<div class='clear'><br></div>");
                        $('#messageShow').show();
                        return false;
                    }
                     $.ajax({
                        url:'/ajax/feedback.php',
                        type:'POST',
                        cache: false,
                        data:{'name':name,'email':email,'subject':subject,'message':message},
                        dataType:'html',
                        success: function (data) {
                            if(data == 'Сообщение отправлено') {
                                $('#messageShow').html (data + "<div class='clear'><br></div>");
                                $('#messageShow').show();
                            } 
                         

                        }
                    });
                });
            });
           
        </script>

$name = htmlspecialchars($_POST['name']);
    $email = htmlspecialchars($_POST['email']);
    $subject = htmlspecialchars($_POST['subject']);
    $message = htmlspecialchars($_POST['message']);
    if ($name == '' || $email == '' ||$subject == '' ||$message == '' ) {
        echo 'Заполните все поля';
        exit;
    }
//отправка 
$subject = "=?utf-8?B?".base64_encode($subject)."?=";
$headers = "From: $email\r\nReply-to: $email\r\nContent-type: text/html; charset=utf-8\r\n";
if(mail("LeonFoxDev@outlook.com",$ubject, $message, $headers"))
    echo "Сообщение отправлено";
    else
    echo "Сообщение не отправлено";
  • Вопрос задан
  • 432 просмотра
Подписаться 1 Оценить 7 комментариев
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Возвращать из скрипта/функции текстовые значения - фу так делать! Верните или 1/2 допустим, или json хотя бы.
Напишите обертку с трай-кетчем на стороне фидбэка. Записывайте еррор в файл, и смотрите что сломалось.

UPD: эх... проверьте url:'/ajax/feedback.php', там ли он лежит?
проверьте скрипт, где он останавливается, и запускается ли вообще, пихните пару алертов в ключевых местах яваскрипта, например перед/после аякса, алертните значения переменных которые посылаете.
Да, проверьте подключается ли вообще JQ.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы