2013-06-10 5 views
0

Я пытаюсь сделать форму, которая будет отправлена ​​на мой адрес электронной почты. Но он отображает ошибки при подаче. Javascript для проверки формы не отображается, но он отлично работает. Я не уверен, что случилось с моим кодом ниже, пытался выяснить весь день и читать разные темы, но безрезультатно.Отправка формы по электронной почте не работает

Ниже приведен код моего php для обработки формы.

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

// EDIT THE 2 LINES BELOW AS REQUIRED 
$email_to = "[email protected]"; 
$email_subject = "Nexwave Form"; 


function died($error) { 
    // your error code can go here 
    echo "We are very 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(); 
} 

$name = $_POST['name']; // required 
$designation = $_POST['designation']; 
$company = $_POST['company']; 
$contact = $_POST['contact']; 
$email = $_POST['email']; // not required 
$users = $_POST['users']; // required 

$error_message = ""; 
$string_exp = "/^[A-Za-z .'-]+$/"; 

$email_message = "Form details below.\n\n"; 

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

$email_message .= "Name: ".clean_string($name)."\n"; 
$email_message .= "Designation: ".clean_string($designation)."\n"; 
$email_message .= "company: ".clean_string($company)."\n"; 
$email_message .= "Contact ".clean_string($contact)."\n"; 
$email_message .= "email: ".clean_string($email)."\n"; 
$email_message .= "Number of Users: ".clean_string($users)."\n"; 


// create email headers 
$headers = 'From: '.$email."\r\n". 
'Reply-To: '.$email."\r\n" . 
'X-Mailer: PHP/' . phpversion(); 
echo (int) mail($email_to, $email_subject, $email_message, $headers); 
?> 

<!-- include your own success html here --> 

Thank you for contacting us. We will be in touch with you very soon. 

<?php 
} 
?> 

Ниже мой HTML-код:

<form name="form" action="send_mail.php" onSubmit="return validateForm();" method="POST"> 
&nbsp;Name<br/><input name="name" type="text" style="width:90%;"/><br/> 
&nbsp;Designation<br/><input name="designation" type="text" style="width:90%;"/><br/> 
&nbsp;Company<br/><input name="company" type="text" style="width:90%;"/><br/> 
&nbsp;Contact Number<br/><input name="contact" type="text" style="width:90%;"/><br/> 
&nbsp;Email<br/><input name="email" type="text" style="width:90%;"/><br/> 
&nbsp;Number of Users<br/><input name="users" type="text" style="width:90%;"/> 
<span style="text-align:right;display:block;width:174px;"><input style="height:25px;margin-top:20px;margin-bottom:10px;background-color:#ffffff;border:0;color:#009110;" type="submit" class="submit" value="Submit" /></span> 
</form> 

ниже ошибка: Это то, что я получаю даже после изменения email_address и email_from.

"; echo $error." 

"; echo "Please go back and fix these errors. 

"; die(); } $name = $_POST['name']; // required $designation = $_POST['designation']; $company = $_POST['company']; $contact = $_POST['contact']; $email = $_POST['email']; // not required $users = $_POST['users']; // required $error_message = ""; $string_exp = "/^[A-Za-z .'-]+$/"; $email_message = "Form details below.\n\n"; function clean_string($string) { $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); } $email_message .= "Name: ".clean_string($name)."\n"; $email_message .= "Designation: ".clean_string($designation)."\n"; $email_message .= "company: ".clean_string($company)."\n"; $email_message .= "Contact ".clean_string($contact)."\n"; $email_message .= "email: ".clean_string($email)."\n"; $email_message .= "Number of Users: ".clean_string($users)."\n"; // create email headers $headers = 'From: '.$email_from."\r\n". 'Reply-To: '.$email."\r\n" . 'X-Mailer: PHP/' . phpversion(); echo (int) mail($email_to, $email_subject, $email_message, $headers); ?> Thank you for contacting us. We will be in touch with you very soon. 

ваша помощь очень высоко ценится

+3

Что означает «это не работает»? 'mail()' возвращает false? Он выводит сообщение об ошибке? Отправка пустых писем? Отправка писем с неправильным адресом? Отправляете письма, которые не получаете? – andrewsi

+2

http://imgs.xkcd.com/comics/exploits_of_a_mom.png – imulsion

+0

'input name =" email_address "' '$ email = $ _POST ['email'];' что происходит –

ответ

0

У вас есть много ошибок, присутствующих в этом сценарии, как упомянуто выше замечания вопрос.

  • электронной форме имя email_address не то же самое, как $_POST['email']
  • вы не определяя $email_from, прежде чем вы это называете.

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

Смежные вопросы