PHPMailer;PHP-код для контактной формы с пустым результатом - PullRequest
0 голосов
/ 07 мая 2019

Я использую PHPMailer для первой отправки контактной формы, и он выдает ошибки «создание объекта по умолчанию из пустого значения», ссылаясь на мое имя пользователя gmail и «вызов неопределенного метода stdClass :: isSMTP».

Я удалил блок try catch, предоставленный примером кода PHPMailer на Github, чтобы я мог использовать оператор if else для доступа к данным POST. Поэтому при отправке я получаю пустую страницу, но ошибки, которые были показаны выше, когда был установлен блок try catch, возможно, все еще являются проблемой. Я просмотрел предыдущие посты по этому вопросу, и пока никто не отвечает на вопрос.

ФОРМА HTML

<form action='/mail_handler.php' name='contact-form' id='contact-form' method='post' enctype='text/plain'>
                    <div class="form-group padding-top">
                        <label for="name">Name</label>
                        <input type="name" class="form-control" id="name" name='name' placeholder="your name">
                    </div>
                    <div class="form-group">
                        <label for="email">Email address</label>
                        <input type="email" class="form-control" id="email" name='email' placeholder="name@example.com">
                    </div>
                    <div class="form-group">
                        <label for="ceremony-type">Ceremony Type</label>
                        <select class="form-control" id="ceremony_type" name='ceremony_type'>
                              <option value='bespoke wedding ceremony'>bespoke wedding ceremony</option>
                              <option value='vow renewal'>vow renewal</option>
                              <option value='naming ceremony'>naming cermony</option>
                              <option value='coming-of-age'>coming-of-age</option>
                        </select>
                    </div>
                    <div class="form-group">
                        <label for="ceremony-enhancement">Ceremony Enhancement</label>
                        <select class="form-control" id="ceremony_enhancement" name='ceremony_enhancement'>
                              <option value='sand ceremony'>sand ceremony</option>
                              <option value='unity candle'>unity candle</option>
                              <option value='hand-fasting'>hand-fasting</option>
                              <option value='ring ceremony'>ring ceremony</option>
                              <option value='I have not decided yet'>I haven't decided yet</option>
                        </select>
                    </div>
                    <div class="form-group">
                        <label for="msg">Message</label>
                        <textarea class="form-control" id="msg" name='msg' rows="3"></textarea>
                    </div>
                    <input type="submit" name='submit' value='Send!' class="btn">
                </form>

mail_handler.php

<?php
use PHPMailer\PHPMailer\PHPMailer;

if (isset($_POST['submit'])) {
require 'vendor/autoload.php';
$mail = new PHPMailer(true);

//Server settings
$mail->SMTPDebug = 1;                                       // Enable verbose debug output
$mail->isSMTP();                                            // Set mailer to use SMTP
$mail->Host       = 'smtp.gmail.com';                       // Specify main and backup SMTP servers
$mail->SMTPAuth   = true;                                   // Enable SMTP authentication
$mail->Username   = 'mygmail@gmail.com';                    // SMTP username
$mail->Password   = 'mypassword';                           // SMTP password
$mail->SMTPSecure = 'tls';                                  // Enable TLS encryption, `ssl` also accepted
$mail->Port       = 587;                                    // TCP port to connect to

        //Recipients
$mail->setFrom('email@domain.ie', 'Name');
$mail->addAddress('example@gmail.com', 'Name');     // Add a recipient
$mail->addReplyTo($_POST['email'], 'Description');

        // Content
$mail->isHTML(true); 
$mail->Subject = 'Query';
$mail->Body    = $_POST['msg'];
$mail->AltBody = $_POST['msg'];

if($mail->send()){;
    echo 'Message sent! Thanks for the getting in touch. I\'ll be in touch soon. Best Wishes';
} else {
    echo "Something went wrong! You can contact me on email@domain.ie";
    }
}
?>
...