PHPmail-контактная форма не получает почту и ошибок - PullRequest
0 голосов
/ 29 февраля 2020

Итак, у меня проблема, я загрузил свой индекс. php файл, который является формой контакта на сервер моего веб-сайта, и когда я заполняю его и нажимаю на кнопку отправить, он просто обновляет мой браузер, и никакая ошибка не появляется, и никакое сообщение не показывает, что не удалось или он был представлен. Вот мой html код: https://codepen.io/themandelaeffect/pen/poJPBdZ?editors=1000, и это код php, который я использую:

<?php
ini_set('display_errors',  true);
error_reporting(1);

if(isset($_POST['submit'])) 
{

ini_set('display_errors',  true);
require_once "assets/PHPMailer-5.2-stable/PHPMailer-5.2-stable/PHPMailerAutoload.php";
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$Comments = $_POST['message'];


$mail = new PHPMailer;

//Enable SMTP debugging. 
$mail->SMTPDebug = 3;                               
//Set PHPMailer to use SMTP.
$mail->isSMTP();            
//Set SMTP host name                          
$mail->Host = "host";
//Set this to true if SMTP host requires authentication to send email
$mail->SMTPAuth = true;                          
//Provide username and password     
$mail->Username = "username";                 
$mail->Password = "********";                           
//If SMTP requires TLS encryption then set it
$mail->SMTPSecure = "tls";                           
//Set TCP port to connect to 
$mail->Port = 465;                                   

$mail->From = "johndoe@email.com";
$mail->FromName = "Contact";

$mail->addAddress($email, $name);

$mail->isHTML(true);

$mail->Subject = $subject;
$mail->Body = $Comments;
$mail->AltBody = $Comments;

if(!$mail->send()) 
{
    echo "Mailer Error: " . $mail->ErrorInfo;
} 
else 
{
    echo "Message has been sent successfully";
}
}

PHP является новым для меня, и я не уверен что делать. Я скопировал этот код из другого вопроса о переполнении стека, потому что они сказали, что их код работает, потому что оригинальный код, который я использовал, дал мне много ошибок. Может кто-нибудь помочь мне, пожалуйста?

Ответы [ 2 ]

1 голос
/ 29 февраля 2020

я видел ваш код там, я обнаружил, что у вас нет страницы действий, поэтому, если ваш код php на другой странице, просто добавьте имя страницы к

<form action="your_page_name.php" method="post" class="signin-form mt-lg-5 mt-4">

и если ваш код php (выше код, который вы указали) находится на той же странице, тогда не нужно никаких действий, поэтому ваша форма запуска просто будет выглядеть так:

<form  method="post" class="signin-form mt-lg-5 mt-4">

, так что это не совсем ваша проблема, я только что видел, как вы упомянули о вашем новом в php поэтому я просто объяснил, что ваше действие было немного неправильным, вы использовали action: "" insted of action = "" ну, я только что обнаружил, что ваша кнопка отправки не имеет упомянутого типа, а также никакого имени, означает, что вы отправляете свой код php с name submit "if (isset ($ _ POST ['submit']))" вы должны определить имя для кнопки и для отправки формы с php вам необходимо определить тип кнопки = "submit", но вы просто добавили кнопку как

<button class="btn submit">Submit</button>

, поэтому он будет по умолчанию только refre sh страницы, поэтому измените его на

<button type="submit" name="submit" class="btn submit">Submit</button>

, тогда он будет работать нормально, он попадет в ваш код php и выполнится .

0 голосов
/ 29 февраля 2020

Прежде всего, вы используете старую версию PHPMailer; upgrade .

Вы не показываете свою форму, но если она не содержит именованный элемент ввода с именем submit, ваш почтовый код никогда не запустится.

Вы комбинируете порт 465 с tls режимом шифрования; это не сработает - делайте то, что рекомендуют примеры, предоставленные с PHPMailer , так как другие комбинации не будут работать.

Ваше значение Host должно быть вашим сервером исходящей почты и любым именем пользователя и пароль должен соответствовать этому. Если у вас есть собственный почтовый сервер, укажите на это, если нет, используйте то, что рекомендует ваш хостинг-провайдер - мы не можем сказать здесь.

...