簡體   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