2015-09-02 7 views
0

Может кто-нибудь объяснить, почему следующая PHP-форма не будет работать. Я пробовал отправить форму, но почтовый ящик не получил письмо. Это правильный адрес электронной почты.Форма PHP не будет работать

Кроме того, было бы лучше использовать PHP вместо jQuery для предупреждения «Ваше сообщение успешно отправлено!»? Потому что в данный момент он сообщает, что сообщение отправлено, даже если почтовый ящик его не принимает. Если да, то как?

HTML:

<div id="formDiv"> 
     <form id="validationForm"> 

      <label for="anti" id="antiLabel">This is an anti 's'-to-the-'pam' field. Accordingly, do not delete or enter any information here.</label> 
      <input name="anti" id="antiInput"/> 

     <div id="formSection1"> 
      <label for="name" class="label">Name:</label> 
      <input name="name" id="name" class="input" required/> 

      <label for="email" class="label">Email:</label> 
      <input name="email" id="email" class="input" required/> 

      <label for="subject" class="label">Subject:</label> 
      <input name="subject" id="subject" class="input" required/> 
     </div> 

     <div id="formSection2"> 

      <label for="message" id="labelMessage">Message:</label> 
      <textarea name="message" id="inputMessage" required></textarea> 

      <input id="submitButton" type="submit" value="Submit" class="input"/> 
     </div> 

     </form> 
    </div> 

PHP:

<?php 
$ToEmail = '[email protected]'; 
$EmailSubject = 'Site contact form'; 

$mailheader = "From: ".$_POST["email"]."\r\n"; 
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 

$MESSAGE_BODY = "Name: ".$_POST["name"].""; 
$MESSAGE_BODY .= "Email: ".$_POST["email"].""; 
$MESSAGE_BODY .= "Subject: ".nl2br($_POST["subject"]).""; 
$MESSAGE_BODY .= "Message: ".nl2br($_POST["message"]).""; 
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); 
?> 

JQuery:

<script> 

$("#validationForm").submit(function(event){ 

     var errorMessage=""; 

     event.preventDefault(); 

     function isValidEmailAddress(emailAddress) { 
     var pattern = new 
     RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i); 
     return pattern.test(emailAddress); 
     }; 

      /* Regex validation of email address */ 

     if (!isValidEmailAddress($("#email").val())) { 
      errorMessage="*Please enter a valid email address*";} 


     if (errorMessage=="") { 
      $("#error").html(""); 
      alert("Your message has been successfully sent!"); 
     } else { 
      $("#error").html(errorMessage); 
     } 

     if(!String.IsNullOrEmpty(Request.Form["anti"])) 
      IgnoreComment(); 

     }); 


    </script> 
+1

'

' – fantaghirocco

+1

''. – D4V1D

ответ

1
<form id="validationForm"> 

где вы определили действие?

Добавить method и action пожалуйста

<form id="validationForm" action="yourAction.php" method="post" > 

Если вы хотите разместить его там, просто добавьте method='post'

+1

Если theres no "action" attr, форма будет отправлена ​​на ту же страницу – CarlosCarucce

1

Если вы планируете на получение ваших значений формы с $_POST['myField'], вам нужно добавить надлежащее method атрибут вашего тега <form>.

Следовательно, используйте:

<form id="validationForm" method="post"> 

Поскольку это get по умолчанию.

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