Я очень новичок в 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 не получен. Почему это происходит? Любая помощь будет оценена по достоинству. спасибо
проблема с вашим
<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 для дальнейшей проверки формы.