Сервер отображает предупреждения / ошибки, которые делают ожидаемый ответ JSON недействительным - PullRequest
1 голос
/ 06 мая 2011

Я сейчас пишу форму ajax с помощью jquery. Форма обрабатывается с помощью PHP-скрипта, затем информация отправляется через облегченный класс PHPMailer. (http://phpmailer.worxware.com/index.php)

Это код PHP:

    if ($mail->Send())
        echo '{"message":"Mensaje enviado con éxito","status":"ok"}';
    else
        echo '{"message":"Ocurió un error al envíar el mensaje, intentelo más tarde.","status":"fail"}';

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

Invalid address: E-mail:Invalid address: E-mail:Could not execute: /usr/sbin/sendmail

Я должен проверить электронную почту. Хорошо. Но проблема в том, что предыдущее сообщение об ошибке «мешает» и искажает ответ. Таким образом, я могу устранить ошибку электронной почты, но любое другое предупреждение / ошибка может повредить ответ.

Пример ответа «поврежден»:

Неверный адрес: E-mail: Неверный адрес: E-mail: Не удалось выполнить: / usr / sbin / sendmail {"message": "Ocurió un error al envíar el mensaje, intentlo más tarde.", "status": "fail"}

(там не должно быть первой строки)

И это часть javascript (jquery):

        $.ajax
    ({
        type: "POST",
        url: "contact.php",
        data: $(this).serialize(),
        success: function(data)
        {
            if(data.status == 'fail')
            {
                do something with data.message;
            }
            else if(data.status == 'ok')
            {
                do something else with data.message;
            }
        },
        dataType: 'json'
    });

Помогите ли вы с этим? :) спасибо

1 Ответ

0 голосов
/ 06 мая 2011

Это длинный выстрел, но вы пробовали

@ if ($mail->Send())

@ подавляет ошибки php в данной строке кода.

...