繁体   English   中英

我的 PHP 表单在页面加载/刷新时发送空白条目

[英]My PHP form is sending blank entries when the page loads/refreshes

当用户在字段中输入有效数据并点击提交时,我的 PHP 联系表单工作正常并向我的电子邮件发送信息,但每次我加载包含表单的页面时,它也会向我发送一封空白电子邮件。 我认为这可能与我的提交条件有关:

提交按钮代码:

       <div class="col-md-12 submit-button">
            <input type="submit" class="btn btn-success btn-send" value="Send message" />
            <div class="success"><?= $success ?></div>
       </div>

form_process.php 发送代码:

 if ($name_error == '' and $email_error == '' and $phone_error == '' ){
  $message_body = '';
  unset($_POST['submit']);
  foreach ($_POST as $key => $value) {
      $message_body .= "$key: $value\n";
  }  
  $to = 'admin@domain.com';
  $subject = 'contact form submitted';
  if(mail($to, $subject, $message_body)){
      $success = "Thank you for contacting us, we will get back to you as soon as possible.";
      $name = $email = $organization = $phone = $message = '';
  }
}

谢谢!

您需要检查表单是否已提交,因此您在加载表单时不要运行代码。

if (isset($_POST{'submit'])) {
  // All the code that processes the form goes here
}

您必须在执行发送电子邮件脚本之前检查表单是否已提交。

首先为您的提交输入添加一个名称

<div class="col-md-12 submit-button">
    <input name="submit" type="submit" class="btn btn-success btn-send" value="Send message" />
    <div class="success"><?= $success ?></div>
</div>

然后将您的发送电子邮件代码包装在一个 if 中,检查是否存在 $_POST['submit']

if (isset($_POST['submit'])) {
  // your send email code
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM