【问题标题】:my contact form mails me blank values when clicked send单击发送时,我的联系表向我发送空白值
【发布时间】:2012-12-26 01:16:21
【问题描述】:

提交此表单后,我收到一封电子邮件,其中所有值均为空白,请帮助我。

这是我的 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 为 jay44556677@gmail.com 的所有详细信息发送给电子邮件。

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

$mail_to = 'jay44556677@gmail.com';
$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
}
?>

我该如何解决这个问题?

【问题讨论】:

    标签: php html contact contact-form


    【解决方案1】:

    您永远不会为表单元素指定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" ...
    

    【讨论】:

    • 我很抱歉..我的错误意味着我仍然得到空白值..下面的href中还有一个问题..我应该给出什么值或保持空白? 发送
    • 那么现在我应该怎么做才能避免在发送电子邮件时收到空白值..?
    【解决方案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> 
    

    【讨论】:

    • 顺便说一句,下面的href中还有一个问题。我应该给出什么价值?
    • 那么空白值的原因可能是什么?
    • put print_r($_POST);在contact.php中你会得到正确的值所以你需要调试你的邮件功能。
    • 嘿,我明白了 :) 我纠正了我的错误..:)
    猜你喜欢
    • 1970-01-01
    • 2011-08-12
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 2016-01-14
    相关资源
    最近更新 更多