php - 每次访问页面后提交表单都会发送空白信息

标签 php html css wordpress forms

我正在尝试向我的 wordpress 页面添加一个表单,但是我现在遇到的问题是,只要有页面访问我的网页,该表单就会向我发送电子邮件。我认为这是因为我将 php 放在头文件中,所以每次加载头文件时它都会发送一封电子邮件。如何让它仅在实际填写时发送表单提交电子邮件?

HTML

 <form name="infoform" method="post" action="" >

  <br><input type="text" name="ffirstname" placeholder="First Name"/><input type="text" name="lastname" placeholder="Last Name"/>
  <br><br><input type="text" name="address" placeholder="Address"/><input type="text" name="unit" placeholder="Unit"/></br>
  <br><input type="text" name="city" placeholder="City"/><select name="province" >
<option value="ab">AB</option>
  <option value="BC">BC</option> 
  <option value="BC">MB</option>
  <option value="NB">NB</option>
<option value="NL">NL</option>
<option value="NS">NS</option>
<option value="ON">ON</option>
<option value="PE">PE</option>
<option value="QC">QC</option>
<option value="SK">SK</option>
</select><input type="text" name="postal" placeholder="Postal Code"/></br>
<br><input type="text" name="country" placeholder="Country"/></br>
<Br><input type="text" name="email" placeholder="Email"/><input type="number" name="phone" placeholder="Phone#"/></br>
<br> <br><input class="submit" type="submit" value="Next" />

CSS

  <style>

  input[type=text], input[type=number], select[name=province]{ font-family: arial; width:100%;  
  border: 1px solid #E5E5E5; padding: 10px 20px;}
input[name=ffirstname] {width:49%; margin-right:1%; }
input[name=lastname] {width:49%; margin-left:1%; }
input[name=address] {width:65.6667%; margin-right:1%; }
input[name=unit] {width:32.3337%; margin-left:1%; }
input[name=city] {width:49%; margin-right:1%; }
select[name=province] {width:24%; margin-left:1%;}
input[name=postal] {width:24%; margin-left:1%; }
input[name=email] {width:49%; margin-right:1%; }
input[name=phone] {width:49%; margin-left:1%;}

input[class=submit] {

  background-color: #f05a28;
  color: white;
  padding: 8px 20px;
  margin-left: 85%;
  border-radius: 4px;
  border: none; !important;
  outline: none; !important ;
  cursor: pointer;
  box-shadow: none; !important;}

PHP

<?php

$name = $_POST['ffirstname'];
$lastname = $_POST['lastname'];
$address = $_POST['address'];
$unit = $_POST['unit'];
$city = $_POST['city'];
$province = $_POST['province'];
$postal = $_POST['postal'];
$country = $_POST['country'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$formcontent=" From: $name $lastname \n Address: $address 
\n Unit: $unit \n City: $city \n Province: $province \n 
Postal Code: $postal \n Country: $country \n 
Email: $email \n Phone: $phone \n ";
$recipient = "contact@justhired.ca";
$subject = "Contact Form";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");

?>

最佳答案

您需要检查是否设置了提交并且输入不为空。

旁注:您可以添加其余的 POST 数组并提供您的 <input class="submit" type="submit" value="Next" />一个名字:

<input class="submit" name="submit" type="submit" value="Next" />

例子:

if(isset($_POST['submit'])) {

if
    (
    !empty($_POST['ffirstname'])
    && 
    !empty($_POST['lastname']) 

    // ... and any other inputs you wish to check for.

    )
{

    $name = $_POST['ffirstname'];
    $lastname = $_POST['lastname'];
    $address = $_POST['address'];
    $unit = $_POST['unit'];
    $city = $_POST['city'];
    $province = $_POST['province'];
    $postal = $_POST['postal'];
    $country = $_POST['country'];
    $email = $_POST['email'];
    $phone = $_POST['phone'];
    $formcontent=" From: $name $lastname \n Address: $address 
    \n Unit: $unit \n City: $city \n Province: $province \n 
    Postal Code: $postal \n Country: $country \n 
    Email: $email \n Phone: $phone \n ";
    $recipient = "contact@justhired.ca";
    $subject = "Contact Form";
    $mailheader = "From: $email \r\n";
    mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");

    }

}

<form name="infoform" method="post" action="" >这是您在电子邮件中获得空值的主要原因,因为您在与 PHP 处理器相同的文件中使用整个代码,而不检查是否有任何输入为空。

关于php - 每次访问页面后提交表单都会发送空白信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41105517/

相关文章:

javascript - 为什么我不能在 Chrome 中使用 JavaScript 直接分配给 element.style?

html - 具有相同高度的CSS Flex-Box

php - 基于用户级别不同的mysql join查询

php - 如何在 HEREDOC SQL 查询中使用 PHP 变量?

php - 数据库异常应该致命吗?

css - 使用 CSS 选择器播放/暂停 HTML5 视频

javascript - 将我的侧边栏菜单更改为用于移动 View 和较小屏幕的按钮

php - 在 Laravel 8 中使用 maatwebsite laravel excel 导入数据

javascript - classlist.toggle 不适用于 fa-check

html - Bootstrap 4下拉按钮宽度