У меня есть простая форма с четырьмя полями ввода, имя, адрес электронной почты, телефон и сообщение.Я использую 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-файла продолжится, пока данные не будут отправлены по электронной почте.Однако этого не происходит.