Как выполнить оставшуюся часть php-скрипта после вывода JSON_encode? - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть простая форма с четырьмя полями ввода, имя, адрес электронной почты, телефон и сообщение.Я использую JavaScript с Ajax для публикации своих полей ввода в файл PHP для проверки и отправки по почте через phpmailer.Я собираю ошибки в массив из функций проверки.Оператор I и if используется для отправки ошибок обратно на html-страницу через функцию json_encode(array) и выхода из сценария.Иначе, я позволил сценарию продолжить и успешно отправить электронное письмо на мой почтовый ящик.Проблема у меня json_encode(array) выход из скрипта, где были найдены ошибки или нет.Даже если я не буду принудительно выходить из сценария с помощью die или exit.В связи с этим электронное письмо не отправляется, так как сценарий преждевременно завершается.
Я перечислил ниже несколько строк из моего php-файла, чтобы показать, как настроен оператор if.

Любая помощь будет принята с благодарностью.

Я часами искал ответы в Интернете, но безрезультатно.Я попытался поместить функцию json_encode в другое место в файле, но она не сработала.Я попытался скомбинировать массив ошибок со строками успеха или неудачи из функции отправки по почте, но ничего не получилось.

if ( $errors != null ) {
    echo json_encode( $errors );
    exit;
} else {  

 $mail = new PHPMailer( true );

    /* Set the mail sender. */
    $mail->setFrom( 'jsmith@gmail.com', 'John Smith' );

    /* Add a recipient. */
    //set who is receving mail
    $mail->addAddress( 'heh@hotmail.com' );

    /* Set the subject. */
    $mail->Subject = 'New message from contact form';

    /* Set email to be sent as HTML */
    $mail->isHTML( true );

    /* Set the mail message body. */
    $mail->Body =

Я ожидаю, что как только оператор if удалит ошибки, весь скрипт php-файла продолжится, пока данные не будут отправлены по электронной почте.Однако этого не происходит.

1 Ответ

0 голосов
/ 21 февраля 2019

Я нашел ответ на другой связанный вопрос, который я разместил в другом посте.Массив ошибок содержал все нулевые переменные, которые условный оператор, который я должен был определить, должна ли почта быть отправлена ​​с логическим значением false (ошибок не найдено), не рассматривал массив как пустой.Мне пришлось изменить условный оператор if, чтобы использовать вместо него array_filters.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...