У меня проблема с получением правильной работы моего почтового кода PHP. Я могу заставить его отправить электронное письмо при загрузке страницы в порядке, проблема в команде ISSET, чтобы заставить его отправить форму после нажатия кнопки отправки. Я пытался положить его в разных местах, но до сих пор не могу заставить его работать. Любая помощь будет оценена.
<?php
require '/phpmailer/PHPMailerAutoload.php';
require_once '/phpmailer/class.phpmailer.php';
include '/phpmailer/class.smtp.php';
if(isset($_POST["Submit"]))
{
$emailaddress = '****@**********';
$message=
'Name: '.$_POST['name'].'<br />
Email: '.$_POST['email'].'<br />
IP: '.$_SERVER['REMOTE_ADDR'].'<br /><br />
Message:<br /><br />
'.nl2br($_POST['message']).'
';
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = "********"; // SMTP server
$mail->SMTPDebug = 1; // 1 = errors and messages,2 = messages only
$mail->SMTPAuth = false; // enable SMTP authentication
$mail->Port = 25; // set the SMTP port for the GMAIL server
$mail->SMTPSecure = 'false'; // Enable encryption, 'ssl' also accepted
$mail->CharSet = 'UTF-8'; // so it interprets foreign characters
$mail->setFrom('***********');
$mail->AddReplyTo('**********');
$mail->Subject = "Contact form submission from ".$_POST['name']." ";
$mail->MsgHTML($message);
$mail->AddAddress($emailaddress);
if(!$mail->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Thank you, your message has been sent!";
}
Я собираюсь сделать свой комментарий в качестве ответа, потому что это единственный вывод, который я могу сделать, и, скорее всего, это будет, не видя HTML-форму ОП.
Ваше условное заявление if(isset($_POST["Submit"]))
основан на кнопке отправки с именем Submit
, Если ваша кнопка отправки имеет name="submit"
вместо name="Submit"
, тогда это объяснило бы это. Если он не назван, то делать.
т.е .:
<input type="submit" name="Submit" value="Send Email">
это не то же самое, что
<input type="submit" name="submit" value="Send Email">
Ваш показанный код имеет правильную привязку.
Использовав Отчет об ошибках и поместил верхнюю часть ваших файлов сразу после открытия <?php
тег
error_reporting(E_ALL);
ini_set('display_errors', 1);
подал бы сигнал Undefined index Submit...
предупреждающее сообщение.
Других решений пока нет …