Форма электронной почты PHP не работает должным образом

Я очень новичок в php, но это даже не имеет никакого смысла: у меня есть HTML-страница, содержащая форму php следующим образом: …

<article id="content"><div class="ic">Here comes the contact form!</div> <div class="wrapper"> <h2>Contact form</h2> <form method="post" id="ContactForm" name="myemailform" action="sendemail.php"> <div> <div class="wrapper"> <span>Nume:</span> <div class="bg"><input type="text" class="input" name="myname"></div> </div> <div class="wrapper"> <span>Adresa:</span> <div class="bg"><input type="text" class="input" name="myadresa" ></div> </div> <div class="wrapper"> <span>Email:</span> <div class="bg"><input type="text" class="input" name="myemail" ></div> </div> <div class="textarea_box"> <span>Mesaj:</span> <div class="bg"><textarea name="textarea" cols="1" rows="1" name="mymesaj"></textarea></div> </div> <a href="#" class="button1" name='submit' value="submit" onclick='javascript: document.myemailform.binset=2; document.myemailform.submit();'>Send message</a> </div> </form> </div> </article> 

И действие sendemail.php выглядит следующим образом:

 <?php if(isset($_POST['submit'])) { // EDIT THE 2 LINES BELOW AS REQUIRED $email_to = "myreal_email@email.com"; $email_subject = "Message from contact 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(); } // validation expected data exists if(!isset($_POST['myname']) || !isset($_POST['myadresa']) || !isset($_POST['myemail']) || !isset($_POST['mymesaj'])) { died('We are sorry, but there appears to be a problem with the form you submitted.'); } $first_name = $_POST['myname']; // required $last_name = $_POST['myadresa']; // required $email_from = $_POST['myemail']; // required $comments = $_POST['mymesaj']; // required $error_message = ""; $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; if(!preg_match($email_exp,$email_from)) { $error_message .= 'The Email Address you entered does not appear to be valid.<br />'; } $string_exp = "/^[A-Za-z .'-]+$/"; if(!preg_match($string_exp,$first_name)) { $error_message .= 'The First Name you entered does not appear to be valid.<br />'; } if(!preg_match($string_exp,$last_name)) { $error_message .= 'The Last Name you entered 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(strlen($error_message) > 0) { died($error_message); } $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($first_name)."\n"; $email_message .= "Adresa: ".clean_string($last_name)."\n"; $email_message .= "Email: ".clean_string($email_from)."\n"; $email_message .= "Mesaj efectiv: ".clean_string($comments)."\n"; // create email headers $headers = 'From: '.$email_from."\r\n". 'Reply-To: '.$email_from."\r\n" . 'X-Mailer: PHP/' . phpversion(); @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 } ?> 

Теперь проблема в том, что я получаю письмо, тема в порядке, письмо отправителя в порядке, но сообщение пуст … no $ email_message не получен. Почему это происходит? Любая помощь будет оценена по достоинству. спасибо

Related of "Форма электронной почты PHP не работает должным образом"

проблема с вашим

  <textarea name="textarea" cols="1" rows="1" name="mymesaj"></textarea> 

есть два имени, где текстовое поле проверяет его.

  <textarea cols="1" rows="1" name="mymesaj"></textarea> 

если вы используете usinh HTML 5 или более высокую версию … используйте «required» во входных тегах … которые будут автоматически проверять входные данные или нет …

как это:

 <input type="text" class="input" name="myname" required> 

и для проверки подлинности электронной почты введите тип ввода как адрес электронной почты … не текст

как это:

 <input type="email" class="input" name="myemail" required > 

Также попробуйте ajax, jquery для дальнейшей проверки формы.