首页 文章

联系表单 - 唯一的问题:PHP没有返回INPUT

提问于
浏览
-1

我已经和他一起工作了几天,并且通过许多以前提出过的问题以及几个教程网站阅读了......联系表格提交,确认和重定向......它发送电子邮件,包含 Headers 和主题行,纠正地址...只是没有输入...没有“来自发送电子邮件”,没有来自姓名输入,没有电子邮件输入,没有消息输入......帮助!如此接近,但到目前为止...任何建议都非常感谢〜我写了HTML和CSS,新手在JS,几乎没有PHP经验...提前谢谢你! :)

这是HTML联系表单:

<form action= "contact-form.php" id="contact-form" method="post">
                            <fieldset>
                                <label><input name="cf-name" type="text" value="Your     Name" onBlur="if(this.value=='') this.value='Your Name'" onFocus="if(this.value =='Your     Name' ) this.value=''" /></label>
                                <label>
                                <input name="cf-email" type="text" value="Email" onBlur="if(this.value=='') this.value='Email'" onFocus="if(this.value =='Email' ) this.value=''" />
                                </label>
                        <textarea name="cf-message" onBlur="if(this.value=='') this.value='Message'" onFocus="if(this.value =='Message' ) this.value=''">Message</textarea>
                                <div class="buttons">
                                    <p><a href="#" onClick="document.getElementById('contact-form').reset()">Clear</a>
                                      <a href="#" onClick="document.getElementById('contact-form').submit()">Send</a></p>
                                    <p>&nbsp;
                                        </p>
                                </div>                                          
                          </fieldset>           
                        </form>

这是PHP(contact-form.php):

<?php
$field_name = $_POST['cf_name'];
$field_email = $_POST['cf_email'];
$field_message = $_POST['cf_message'];

$mail_to = 'info@anelectrician.net';
$subject = 'Message from a website 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 your correspondence. We will contact you shortly.');
    window.location = 'index.html';
</script>
<?php
}
else { ?>
<script language="javascript" type="text/javascript">
    alert('Message failed. Please, send an email to info@anelectrician.net');
    window.location = 'contact.html';
</script>
<?php
}
?>

4 回答

  • 1

    你似乎在这里有所不同......在PHP中你使用下划线,在HTML中你使用破折号 .

    您可以通过调试来测试出错的地方和代码的位置:

    print_r($_POST);
    

    这应该可以帮助您弄清楚您是否只是使用了正确的密钥 .

  • 0

    改变这些

    $field_name = $_POST['cf_name'];
    $field_email = $_POST['cf_email'];
    $field_message = $_POST['cf_message'];
    

    对这些

    $field_name = $_POST['cf-name'];
    $field_email = $_POST['cf-email'];
    $field_message = $_POST['cf-message'];
    
  • 1

    $ _POST中的项目需要与输入的名称属性匹配 . 您的输入有破折号,但$ _POST引用有下划线 . 例如:

    <input name="cf-name" ... > 应为 <input name="cf_name" ...>

  • 0

    当您的PHP名称输入具有下划线时,您的html输入有破折号

相关问题