PHP中的网页联系表单无法正常工作

时间:2017-08-13 16:38:42

标签: php html

所以我的联系表格有这个HTML代码:

<section id="contact-form">
            <form action="form.php" method="post" enctype="multipart/form-data">
          <div class="container">
            <div class="row">
              <div class="col-md-6 col-sm-12">
                <div class="block">
                  <form>
                    <div class="form-group">
                      <input type="text" class="form-control" placeholder="Ime" name="name">
                    </div>
                    <div class="form-group">
                      <input type="text" class="form-control" placeholder="Email Adresa" name="email">
                    </div>
                    <div class="form-group">
                      <input type="text" class="form-control" name="subject" placeholder="Predmet">
                    </div>
                  </form>
                </div>
              </div>
              <div class="col-md-6 col-sm-12">
                <div class="block">
                  <form>
                    <div class="form-group-2">
                      <textarea class="form-control" rows="3" placeholder="Poruka" name="message"></textarea>
                    </div>
                    <button class="btn btn-default" type="submit">Pošalji</button>
                  </form>
                </div>
              </div>
            </div>
            </div>
                </form>
              </section>

我的PHP脚本如下所示:

<?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $from = 'From: Kontakt s web-stranice'; 
    $to = 'myEmailAddress'; 
    $subject = 'Kontakt s web-stranice ';

    $body = "From: $name\n E-Mail: $email\n Message:\n $message";
?>

<?php
if ($_POST['submit']) {
    if (mail ($to, $subject, $body, $from)) { 
        echo '<p>Thank you for your email!</p>';
    } else { 
        echo '<p>Oops! An error occurred. Try sending your message again.</p>'; 
    }
}
?>

由于某些原因,当我点击提交按钮时,网页会刷新,并且邮件不会发送到我的电子邮箱。

有谁知道为什么?

1 个答案:

答案 0 :(得分:0)

您的HTML格式使用表单中的表单,因此不会收集<form>标记之外的所有内容。您需要做的就是拥有第一个<form>标记并将所有输入框和提交按钮包装在其中。

请注意以下代码中您只需要一个<form>

<section id="contact-form">
<form action="form.php" method="post" enctype="multipart/form-data">
    <div class="container">
        <div class="row">
            <div class="col-md-6 col-sm-12">
                <div class="block">

                    <div class="form-group">
                        <input type="text" class="form-control" placeholder="Ime" name="name">
                    </div>
                    <div class="form-group">
                        <input type="text" class="form-control" placeholder="Email Adresa" name="email">
                    </div>
                    <div class="form-group">
                        <input type="text" class="form-control" name="subject" placeholder="Predmet">
                    </div>
                </div>
            </div>
            <div class="col-md-6 col-sm-12">
                <div class="block">
                    <div class="form-group-2">
                        <textarea class="form-control" rows="3" placeholder="Poruka" name="message"></textarea>
                    </div>
                    <button class="btn btn-default" type="submit">Pošalji</button>
                </div>
            </div>
        </div>
    </div>
</form>
</section>

从你看来,你的PHP代码是正确的,但是搞砸了表格标签是个大问题。