非常简单的HTML / PHP表单问题

时间:2017-09-07 20:34:22

标签: php html css

请理解我非常清楚之前发布的类似问题。我已经尝试了一切来解决这个问题。这让我疯了。除了这个问题之外,一切都很好:

用户填写联系表格并提交。然后将表单完美地通过电子邮件发送到我服务器的电子邮件中。但是,电子邮件的内容不存在。基本上,就好像我的变量没有存储任何数据。请看下面的屏幕截图。

The email in the inbox

图像显示主题工作正常并且工作正常,但以下变量不起作用:

$name = $_POST['name'];
$number = $_POST['number'];
$email = $_POST['email'];
$yourmessage = $_POST['yourmessage'];

请参阅我的HTML和PHP代码。

PHP

<?php

$to = 'HIDDEN.co.uk';
$subject = 'New message from customer';

$name = $_POST['name'];
$number = $_POST['number'];
$email = $_POST['email'];
$yourmessage = $_POST['yourmessage'];

$body = <<<EMAIL

Hello.
<br><br>
Name: $name. 
<br>
Telephone: $number.
<br><br>
$yourmessage

EMAIL;

$headers    = 'MIME-Version: 1.0' . "\r\n";
$headers   .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers   .= 'From: ' .$email. "\r\n";

mail($to,$subject,$body,$headers);
header("location:../../../.../index.html");

?>

HTML

<form action="glossary/js-blueprints/js-contact-form/js-contact-form.php./" method="post" id="contact-form" class="contact-form">

                    <div class="row">
                        <div class="col-md-6">
                        <div class="form-group">
                            <input type="text" class="form-control" name="name" autocomplete="off" id="name" placeholder="Full name">
                        </div>
                    </div>

                        <div class="col-md-3">
                        <div class="form-group">
                            <input type="number" class="form-control" name="number" autocomplete="off" id="number" placeholder="Telephone number">
                        </div>
                        </div>                      

                        <div class="col-md-3">
                        <div class="form-group">
                            <input type="text" class="form-control" name="email" autocomplete="off" id="email" placeholder="Email Address">
                        </div>
                        </div>  

                    </div>

                    <div class="row">
                        <div class="col-md-12">
                        <div class="form-group">
                            <textarea class="form-control textarea" rows="3" name="yourmessage" id="yourmessage" placeholder="Your message..."></textarea>
                        </div>
                        </div>
                    </div>

                    <div class="row">
                    <div class="col-md-12">
                  <button type="submit" class="btn main-btn pull-right">Send a message</button>
                  </div>
                  </div>
               </form>

感谢您抽出宝贵时间帮助像我这样的新手。

路易斯。

1 个答案:

答案 0 :(得分:0)

您的标题格式不正确。此外,你的$ body格式很糟糕。为了更好地衡量,您需要解析试图通过电子邮件发送给您的数据。 IE,应该设置名称和电子邮件吗?它是否是经过验证的电子邮件是否重要?通常,您只需在发送电子邮件或存储数据之前进行类似的检查。

$body = "Hello.<br /><br />
Name: " . $name . "<br />
Telephone: " . $number . "<br /><br />
" . $yourmessage;

$headers    = "MIME-Version: 1.0 \r\n";
$headers   .= "Content-type: text/html; charset=utf-8 \r\n";
$headers   .= "From: " . $email . "\r\n";