моя контактная форма отправляет мне пустые значения при нажатии кнопки «Отправить»

Когда эта форма отправляется, я получаю электронное письмо, в котором все значения пусты, пожалуйста, помогите мне.

Это мой html-файл, в котором я принимаю имя, адрес электронной почты и сообщение в качестве входных данных.

<form id="form" method="post" action="contact.php" >
    <fieldset>
        <label><input type="text" value="Name" onBlur="if(this.value=='') this.value='Name'" onFocus="if(this.value =='Name' ) this.value=''"></label>
        <label><input type="text" value="Email" onBlur="if(this.value=='') this.value='Email'" onFocus="if(this.value =='Email' ) this.value=''"></label>
        <label><textarea onBlur="if(this.value==''){this.value='Message'}" onFocus="if(this.value=='Message'){this.value=''}">Message</textarea></label><br>
        <<a href="#" class="button" onClick="document.getElementById('form').submit()">Send</a></div>
    </fieldset>  
</form> 

php-файл:

в файле php я хочу отправить все подробности по электронной почте на id [email protected].

<?php
$field_name = $_POST['Name'];
$field_email = $_POST['Email'];
$field_message = $_POST['Message'];

$mail_to = '[email protected]';
$subject = 'Message from a site visitor '.$field_name;

$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;

$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";

$mail_status = mail($mail_to, $subject, $body_message, $headers);

if ($mail_status) { ?>
    <script language="javascript" type="text/javascript">
        alert('Thank you for the message. We will contact you shortly.');
        window.location = 'contacts.html';
    </script>
<?php
}
else { ?>
    <script language="javascript" type="text/javascript">
        alert('Message failed. Please try again.');
        window.location = 'contacts.html';
    </script>
<?php
}
?>

Как это исправить?


person Jay Visariya    schedule 25.12.2012    source источник


Ответы (2)


Каждый элемент формы ввода должен иметь поле имени, иначе будет отправлено пустое значение.

<form id="form" method="post" action="contact.php" >
                  <fieldset>
                    <label><input type="text" name="Name" value="Name" onBlur="if(this.value=='') this.value='Name'" onFocus="if(this.value =='Name' ) this.value=''"></label>
                    <label><input type="text" name="Email" value="Email" onBlur="if(this.value=='') this.value='Email'" onFocus="if(this.value =='Email' ) this.value=''"></label>
                    <label><textarea name="Message" onBlur="if(this.value==''){this.value='Message'}" onFocus="if(this.value=='Message'){this.value=''}">Message</textarea></label><br>
                    <<a href="#" class="button" onClick="document.getElementById('form').submit()">Send</a></div>
                  </fieldset>  
                </form> 
person MagentoDiary    schedule 25.12.2012
comment
Кстати, еще один вопрос в приведенной ниже ссылке .. какое значение я должен указать? - person Jay Visariya; 25.12.2012
comment
тогда в чем может быть причина пустых значений? - person Jay Visariya; 25.12.2012
comment
поставить print_r($_POST); в contact.php, и вы получите правильное значение. Итак, вам нужно отладить вашу почтовую функцию. - person MagentoDiary; 25.12.2012
comment
эй, я понял :) я исправил свою ошибку .. :) - person Jay Visariya; 25.12.2012

Вы никогда не указываете name=s для элементов формы, поэтому значения никогда не отправляются на ваш сервер.

<input type="text" value="Name" ...
<input type="text" value="Email" ...

необходимо добавить поле имени:

<input type="text" name="Name" value="Name" ...
<input type="text" name="Email" value="Email" ...
person Amber    schedule 25.12.2012
comment
извините .. моя ошибка означала, что я все еще получаю пустые значения .. и еще один вопрос в приведенном ниже href .. какое значение я должен указать или оставить его пустым? ‹a href=# class=button onClick=document.getElementById('form').submit()›Отправить‹/a› - person Jay Visariya; 25.12.2012
comment
Итак, что мне делать, чтобы избежать пустых значений, которые я получаю при отправке по электронной почте ..? - person Jay Visariya; 25.12.2012