Php 表单提交在每次页面访问后发送空白信息

Php 表单提交在每次页面访问后发送空白信息,php,html,css,wordpress,forms,Php,Html,Css,Wordpress,Forms,我正在尝试向我的wordpress页面添加一个表单,但是我现在遇到的问题是,每当有页面访问我的网页时,表单都会向我发送电子邮件。我想这是因为我把php放在了头文件中,所以每次加载头文件时,它都会发送一封电子邮件。如何使其仅在实际填写时发送表单提交电子邮件 HTML AB 卑诗省 兆字节 铌 NL NS 在…上 体育课 质量控制 SK CSS 输入[type=text],输入[type=number],选择[name=province]{字体系列:arial;宽度:100%;

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

HTML







AB 卑诗省 兆字节 铌 NL NS 在…上 体育课 质量控制 SK






CSS


输入[type=text],输入[type=number],选择[name=province]{字体系列:arial;宽度:100%;
边框:1px实心#e5;填充:10px 20px;}
输入[name=ffirstname]{宽度:49%;右边距:1%;}
输入[name=lastname]{宽度:49%;左边距:1%;}
输入[名称=地址]{宽度:65.6667%;右边距:1%;}
输入[名称=单位]{宽度:32.3337%;左边距:1%;}
输入[name=city]{宽度:49%;右边距:1%;}
选择[名称=省]{宽度:24%;左边距:1%;}
输入[name=postal]{宽度:24%;左边距:1%;}
输入[名称=电子邮件]{宽度:49%;右边距:1%;}
输入[name=phone]{宽度:49%;左边距:1%;}
输入[类=提交]{
背景色:#f05a28;
颜色:白色;
填充:8px 20px;
左缘:85%;
边界半径:4px;
边界:无;重要;
大纲:无;重要;
光标:指针;
框阴影:无;!重要;}

PHP



按照Fred的建议,您需要检查表单是否已提交 并将“提交”按钮更改为

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

您需要检查提交是否已设置,输入是否为空

旁注:您可以添加其余的POST数组,并为您的
命名:

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


是您在电子邮件中获得空值的主要原因,因为您在与PHP处理器相同的文件中使用整个代码,并且没有检查任何输入是否为空。

发生的事情是,每次加载页面时,您的PHP脚本都在运行。您需要在PHP中包含一个条件语句,该语句表示:“单击此按钮时,执行此操作…”

为了实现这一点,您需要更新HTML并将name属性添加到submit按钮。我将该属性的值设置为“Next”。你总是可以改变的。但是,请确保更改反映在PHP脚本中

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

答:对输入使用有条件的
empty()
,并在提交按钮上使用
isset()
。这种类型的问题已经被问过很多次了。由于某些原因,isset()不起作用。您如何使用isset()或empty()?我在下面为您发布了一些信息。您可以将其他post数组添加到它@joonjoon不可能的副本中,最好为输入添加条件
empty()
。如果有人只是点击提交,他们就会收到空邮件。是的,我没有把我的按钮命名为go figure。谢谢@JoonJoonam De nada;-)@JoonJoonam你也可以选择将问题标记为已解决,这样其他人就不会认为问题仍然存在。
<?php
if(isset($_POST['submit'])){
$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!");
}
?>
<input class="submit" type="submit" name="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!");

    }

}
<br> <br><input name="Next" class="submit" type="submit" value="Next" />
if(isset($_POST['Next'])){
//Your script goes here
}