为什么这个提交表单“检查列表”数据不会发送到PHP的电子邮件?

时间:2012-12-04 12:08:15

标签: php html forms email submit

我正在尝试创建一个检查列表,允许用户检查他们想要的每个项目,然后向他们选择的电子邮件发送电子邮件。我正在使用JQueryMobile,我不知道它是否会导致任何问题,但是当我按下提交时页面会不断加载。

这是我的HTML代码:

<form name="emailform" enctype="multipart/form-data" action="form-to-email.php" method="post">
  <div data-role="fieldcontain">
  <label for='name'>Festival name: </label><br>
  <input type="text" name="name">
   <h3>
   Essentials
   </h3>


   <fieldset data-role="controlgroup" data-type="vertical">
    <legend>
    </legend>
    <input name="checkbox1" id="checkbox1" type="checkbox" />
    <label for="checkbox1">
    Tickets
    </label>
    <input name="checkbox2" id="checkbox2" type="checkbox" />
    <label for="checkbox2">
    Parking pass
    </label>
    <input name="checkbox3" id="checkbox3" type="checkbox" />
    <label for="checkbox3">
    Directions
    </label>
    <input name="checkbox4" id="checkbox4" type="checkbox" />
    <label for="checkbox4">
    Cash &amp; Cards
    </label>
    <input name="checkbox5" id="checkbox5" type="checkbox" />
    <label for="checkbox5">
     Keys
    </label>
    </fieldset>

     <label for='email'>Send to Email:</label><br>
     <input type="text" name="email">

     <input name="share" type="submit" value="Share">

     </form>

这是我的PHP:

    <?php
    if(!isset($_POST['submit'])){
    if (!$_POST['name'] | !$_POST['email']) 
    {
    echo"<div class='error'>Error<br />You did not fill in a required field, please       review your form and correct the missing information.</div>";
    }
    }
    $name = $_POST['name'];
    $email = $_POST['email'];
    $checkbox1 = $_POST['checkbox1'];

    $email_from = "Application";
    $email_subject = $name;
    $email_body = "You have received a new checklist via App.\n".
    "Here is the checklist so far:\n $checkbox1".

    $headers = "From: $email_from \r\n";
    mail($email, $email_subject,$email_body,$headers);
    header('Location: index.html');

    ?>

2 个答案:

答案 0 :(得分:0)

如果您尝试从localhost发送电子邮件,那么您肯定会遇到此错误,因为默认情况下没有邮件设置。但是,您可以在计算机上安装测试邮件服务器以测试来自localhost的电子邮件。

如果您要从实时服务器发送电子邮件,则需要按照本教程克服代码中可能出现的任何问题:http://www.w3schools.com/php/php_mail.asp

答案 1 :(得分:0)

我认为您应该通过AJAX与jQuery进行通信,在这种情况下,您不应该发送标头。另外,您应该注意复选框值为TRUE / FALSE,所以

“您已通过App收到了新的核对清单。”    “到目前为止,这是清单:”。