【问题标题】:Contactform send mail while required fields are not filledContactform 在未填写必填字段时发送邮件
【发布时间】:2018-02-02 19:37:56
【问题描述】:

我想像这样设置我的联系表格,如果未填写必填字段,则不会发送邮件。如果我点击“提交”,仍然会发送邮件。有人可以帮我找到解决问题的好方向吗?我只希望在填写所有必填字段后发送邮件。

<?php


$nameErr = $emailErr = "";
$naam = $email = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["naam"])) {
    $nameErr = "Wij willen graag weten hoe u heet!";
  } else {
    $naam = test_input($_POST["naam"]);
  }

  if (empty($_POST["email"])) {
    $emailErr = "Zonder een mailadres kunnen wij uw mail niet beantwoorden";
  } else {
    $email = test_input($_POST["email"]);
  }

}

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}

if(isset($_POST['submit']))
{
    $naam = $_POST['naam'];
    $email = $_POST['email'];
    $onderwerp ="Contactformulier ingevuld door $naam";
    $bericht = $_POST['bericht'];
    $CS = "google@gmail.com";
    $afzender = "Googla BV";

    $headers = 'From: GoogleBV <no-reply@google.nl>' . "\r\n" .
    'Reply-To: ' . $email . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
    mail($CS, $onderwerp, $bericht, $headers);

}


 ?>

【问题讨论】:

  • 发送邮件前检查错误变量是否设置且不为空

标签: php forms validation email


【解决方案1】:

你应该这样做:

<?php


$nameErr = $emailErr = "";
$naam    = $email = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (empty($_POST["naam"])) {
        $nameErr = "Wij willen graag weten hoe u heet!";
    } else {
        $naam = test_input($_POST["naam"]);
    }

    if (empty($_POST["email"])) {
        $emailErr = "Zonder een mailadres kunnen wij uw mail niet beantwoorden";
    } else {
        $email = test_input($_POST["email"]);
    }

}

function test_input($data)
{
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}

if (isset($_POST['submit']) && !empty($_POST['email']) && !empty($_POST['naam'])) {
    $naam      = $_POST['naam'];
    $email     = $_POST['email'];
    $onderwerp = "Contactformulier ingevuld door $naam";
    $bericht   = $_POST['bericht'];
    $CS        = "google@gmail.com";
    $afzender  = "Googla BV";

    $headers = 'From: GoogleBV <no-reply@google.nl>' . "\r\n" . 'Reply-To: ' . $email . "\r\n" . 'X-Mailer: PHP/' . phpversion();
    mail($CS, $onderwerp, $bericht, $headers);

}


?>

现在它检查表单是否已提交并且用户名/电子邮件不为空。

【讨论】:

    猜你喜欢
    • 2019-01-04
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    • 2015-08-03
    • 1970-01-01
    • 2013-11-14
    • 2018-11-21
    相关资源
    最近更新 更多