Запрос на обработку ошибок PHPMailer

Я обновил этот код с помощью PHPMailer. Теперь код работает и отправляет через форму на любой адрес электронной почты, который я хочу, если у меня есть правильная настройка хоста в PHP. Это здорово. Но это не направляет меня на мою страницу с благодарностью: header("Location: http://strawberryletting.co.uk/new_form/thank_you.html"); отправляет электронное письмо в порядке вместе с правильной информацией, но как только пользователь выбирает submit button, они остаются на странице PHP с большим количеством письменного жаргона. См. Обновленный PHP ниже:

PHP:

    <?php

error_reporting(-1);
ini_set('display_errors', 'On');
set_error_handler("var_dump");  // Look for errors and report errors - if there are any

$name = $_POST["name"];  // Declare variables - inputted from HTML form 
$email = $_POST["email"];
$tel = $_POST["tel"];
$msg = $_POST["msg"];


require("PHPMailer/src/PHPMailer.php"); // Call files required for the phpmailer code from our folder directory
require("PHPMailer/src/Exception.php");
require("PHPMailer/src/SMTP.php");
$mail = new PHPMailer\PHPMailer\PHPMailer(true);
$mail->isSMTP(); // Simple mail transfer protocol
$mail->SMTPDebug = 2; // 1 - 4 use 2 - most useful response
$mail->SMTPAuth = true; // enable the SMTP authentication
$mail->Host = 'smtp.live.com'; // SMTP server and backup server  
$mail->Username = '[email protected]';
$mail->Password = 'PASSWORD';
$mail->SMTPSecure = 'tls'; // enable encryption - accepts TLS also  
$mail->Port = 587; // port to connect - SSL 465 TLS TLS 587 - likely port numbers - 25, 465 or 587
$mail->setFrom('[email protected]', 'Billy Farroll'); // This is where the email will come from 
$mail->addAddress('[email protected]','Billy Farroll'); // This is where the email will be sent to
$mail->addReplyTo("$email","$name"); 
$mail->isHTML(true);
$mail->Subject = 'TEST1';
$mail->Body = "$msg"; 
if (!$mail->send()){ // Send the message 

    echo 'Message Failed';


    } else {


        header("Location: http://strawberryletting.co.uk/new_form/thank_you.html"); // Take me to Thank you page 

    }

?>

HTML:

<div class = "container">
  <div class = "row">
    <div class = "col-lg-12">

<section id = "contact">
    <form action = "enquiry_new.php" method = "post">
          <div class = "field name-box">
                <input type = "text" id = "name" name = "name" placeholder = "Who Are You?" tabindex = "1" required>
                <label for = "name">Name</label>
                <span>Done</span>
          </div>

          <div class = "field email-box">
                <input type = "text" id = "email" name = "email" placeholder = "[email protected]" tabindex = "2" required>
                <label for = "email">Email</label>
                <span>Done</span>
          </div>

      <div class = "field tel-box">
                <input type = "text" id = "tel" name = "tel" placeholder = "Telephone Number" tabindex = "3" required>
                <label for = "tel">Mobile</label>
                <span>Done</span>
          </div>

          <div class = "field msg-box">
                <textarea id = "msg" name = "msg" rows = "4" placeholder = "What's Up?" tabindex = "4" required></textarea>
                <label for = "msg">Message</label>
                <span>Done</span>
          </div>

          <input class = "button" type = "submit" value = "Send" />
  </form>
</section>
    </div>
  </div>
</div>

Вместо низкоуровневой функции mail() используйте одну из проверенных почтовых библиотек, например PHPMailer, SwiftMailer или аналогичные. Это не только даст вам более подробный API, но и отправит электронное письмо через SMTP-сервер вашего почтового провайдера. Таким образом, сценарий также будет более портативным (поскольку он не будет зависеть от конфигурации ваших веб-серверов).

Magnus Eriksson 29.05.2018 14:59

Магнус Эрикссон. Вы обновили библиотеку PHPMailer, не могли бы вы увидеть мой новый PHP и увидеть проблему? Был бы очень признателен.

billy.farroll 30.05.2018 16:05

Вы рассмотрели все пункты повторяющегося вопроса?

Magnus Eriksson 30.05.2018 16:09

Могу сказать только одно: ваш код должен выдавать кучу уведомлений о неопределенном индексе. Вы используете $_POST['$email'], $_POST['$name'] и т. д., Когда должны быть $_POST['email'], $_POST['name'] и т. д. (Без $ перед клавишами). Вы даже использовали правильные имена в начале файла и сохранили данные в переменных, поэтому я не уверен, почему вы вообще используете переменную $_POST позже в сценарии.

Magnus Eriksson 30.05.2018 16:13

Да, я рассмотрел большинство других моментов в другом вопросе. Таким образом, у вас будет $ mail-> addReplyTo ($ _ POST ['$ email'], $ _POST ['$ name']); и $ mail-> Body = $ _POST ['$ msg']; вот так: $ mail-> addReplyTo ($ _ POST ['email'], $ _POST ['name']); и $ mail-> Body = $ _POST ['msg']; ?

billy.farroll 30.05.2018 16:17

Или просто полностью удалить переменную $ _POST?

billy.farroll 30.05.2018 16:18

Просто используйте вместо этого переменные, которые вы определили в начале.

Magnus Eriksson 30.05.2018 16:20

Спасибо, сделаю еще парочку тестов.

billy.farroll 30.05.2018 16:24

Извини, что приставал к тебе, Магнус. Я обновил код до последней версии PHPMailer, и он работает. Но не направляет меня на страницу благодарности.

billy.farroll 31.05.2018 09:53

ИСПРАВЛЕНО НАКОНЕЦ.

billy.farroll 31.05.2018 10:00
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
10
33
0

Другие вопросы по теме