2015-12-24 2 views
-1

У меня есть контактная форма, которая отправляет мне информацию, которая была отправлена. Проблема заключается в том, что он не отправляет клиенту электронное письмо для подтверждения отправки. Полный код приведен ниже. Если кто-нибудь скажет мне, что мне не хватает или что я должен изменить, было бы весьма признательно.Почему мой автоответчик не работает?

<?php 
if(isset($_POST['Email_Address'])) { 

include 'freecontactformsettings.php'; 

function died($error) { 
    echo "Sorry, but there were error(s) found with the form you submitted. "; 
    echo "These errors appear below.<br /><br />"; 
    echo $error."<br /><br />"; 
    echo "Please go back and fix these errors.<br /><br />"; 
    die(); 
} 

if(!isset($_POST['Full_Name']) || 
    !isset($_POST['Email_Address']) || 
    !isset($_POST['Telephone_Number']) || 
    !isset($_POST['Your_Message']) || 
    !isset($_POST['AntiSpam'])  
    ) { 
    died('Sorry, there appears to be a problem with your form submission.');   
} 

$full_name = $_POST['Full_Name']; // required 
$email_from = $_POST['Email_Address']; // required 
$telephone = $_POST['Telephone_Number']; // not required 
$comments = $_POST['Your_Message']; // required 
$antispam = $_POST['AntiSpam']; // required 

if (isset($_POST['newsletter'])) { 
$newsletter = "yes"; 
} else { 
$newsletter = "no"; 
} 

$error_message = ""; 

$email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 
if(preg_match($email_exp,$email_from)==0) { 
$error_message .= 'The Email Address you entered does not appear to be valid.<br />'; 
} 
if(strlen($full_name) < 2) { 
$error_message .= 'Your Name does not appear to be valid.<br />'; 
} 
if(strlen($comments) < 2) { 
$error_message .= 'The Comments you entered do not appear to be valid.<br />'; 
} 

if($antispam <> $antispam_answer) { 
$error_message .= 'The Anti-Spam answer you entered is not correct.<br />'; 
} 

if(strlen($error_message) > 0) { 
died($error_message); 
} 
$email_message = "Form details below.\r\n"; 

function clean_string($string) { 
    $bad = array("content-type","bcc:","to:","cc:"); 
    return str_replace($bad,"",$string); 
} 

$email_message .= "Full Name: ".clean_string($full_name)."\r\n"; 
$email_message .= "Email: ".clean_string($email_from)."\r\n"; 
$email_message .= "Telephone: ".clean_string($telephone)."\r\n"; 
$email_message .= "Message: ".clean_string($comments)."\r\n"; 
$email_message .= "Newsletter: ".clean_string($newsletter)."\r\n"; 

$headers = 'From: '.$email_from."\r\n". 
'Reply-To: '.$email_from."\r\n" . 
'X-Mailer: PHP/' . phpversion(); 
mail($email_to, $email_subject, $email_message, $headers); 
header("Location: $thankyou"); 
?> 
<script>location.replace('<?php echo $thankyou;?>')</script> 


if ($email->send()){ 
$autoemail = new PHPMailer(); 
$autoemail->From = "[email protected]"; 
$autoemail->FromName = "Alt Fuels"; 
$autoemail->AddAddress($email_from->Email Address, $full_name->Full Name); 
$autoemail->Subject = "Autorepsonse: We received your submission"; 
$autoemail->Body = "We received your submission. We will contact you soon ..."; 

$autoemail->Send(); 
} 

<?php 
} 
die(); 
?> 

(* примечание: я изменил некоторые бюллетень кода печати «нет» ответ на мою электронную почту.)

+0

http://php.net/manual/en/function.error-reporting.php и публикация формы будет заданной. –

+0

с быстрым взглядом, неопределенная переменная. снова, покажите свою форму html. и это не имеет смысла 'if ($ newsletter! = 'Yes') { $ newsletter! = 'Нет'; } ' –

+0

, и теперь у вас есть волшебный ответ. спроси их, я ухожу. –

ответ

0

Похоже, вы ссылаетесь $thankyou, который является неопределенным, если он не был определен в freecontactformsettings.php, который вы не указали.

+0

Да, он определен в freecontactformtingstings.php и перенаправляется на файл thankyou.htm. Это тоже работает! Я получил все, что работал, а затем добавил код автоответчика. Он отправляет мне информацию, но не отправляет автоответчик клиенту. – Les