Php 如果字段为空,则停止电子邮件提交的最简单方法

Php 如果字段为空,则停止电子邮件提交的最简单方法,php,validation,Php,Validation,我试图在PHP服务器上复制客户端验证。确保字段已填写的最简单方法是什么?我以前也这样做过,但我有一些问题,有没有更好的办法 <?php if(empty($_POST['Contact0FirstName']) || empty($_POST['Contact0Email']) || empty($_POST['Contact0Phone1']) || empty($_POST['CaptchaInput']) || !empty($_POST['LeadBlind'])) { echo

我试图在PHP服务器上复制客户端验证。确保字段已填写的最简单方法是什么?我以前也这样做过,但我有一些问题,有没有更好的办法

<?php
if(empty($_POST['Contact0FirstName']) || empty($_POST['Contact0Email']) ||
empty($_POST['Contact0Phone1']) || empty($_POST['CaptchaInput']) || !empty($_POST['LeadBlind'])) {
echo "Error";
die();
} else {
//set POST variables
$url = 'xxx';
$infusion_xid = $_POST["xxx"];
$infusion_type = $_POST["xxx"];
$infusion_name = $_POST["xxx"];
$Contact0FirstName = $_POST["Contact0FirstName"];
$Contact0Email = $_POST["Contact0Email"];
$Contact0Phone1 = $_POST["Contact0Phone1"];


$fields = array(
    'infusion_xid'=>urlencode($infusion_xid),
    'infusion_type'=>urlencode($infusion_type),
    'infusion_name'=>urlencode($infusion_name),
    'Contact0FirstName'=>urlencode($Contact0FirstName),
    'Contact0Email'=>urlencode($Contact0Email),
    'Contact0Phone1'=>urlencode($Contact0Phone1)

);

//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
$fields_string = rtrim($fields_string,'& ');

//open connection
$ch = curl_init($url);

//set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//their return html
$output = curl_exec($ch);
//echo "TEST";
echo $output;
curl_close($ch);
}
?>

<form id="Lead" method="post" action="PHP/Lead.php" accept-charset="UTF-8">

                <ul id="LeadForm">
                    <li>*required field</li>
                    <li>
                        <input type="hidden" name="LeadBlind" id="LeadBlind">
                        <label for="Contact0FirstName">1 | First Name*</label>
                        <label for="Contact0Email">2 | Email*</label>
                        <label for="Contact0Phone1">3 | Daytime Phone*</label>
                    </li>
                    <li>
                        <input type="text" name="Contact0FirstName" id="Contact0FirstName">
                        <input type="text" name="Contact0Email" id="Contact0Email">
                        <input type="text" name="Contact0Phone1" id="Contact0Phone1">
                    </li>

                    <li>
                        <label for="CaptchaInput">4 | Please enter the code</label>
                    </li>
                    <li>
                        <input type="text" class="numbers" name="Captcha" id="Captcha" value="" readonly>
                        <input type="text" class="numbers" name="CaptchaInput"  id="CaptchaInput" size="6" maxlength="6">
                    </li>
                    <li>
                        <input type="submit" id="LeadSend" value="Try It Now!">
                        <span id="processing">Submitting Your Request</span>
                    </li>                  
                </ul>
                <div class="clear"></div>
            </form>

我需要LeadBind为空,它是一个隐藏的输入,只有填表机器人才会填写,所以如果它有一个值,它应该触发错误。ajax函数基于返回的内容,如果是错误,则显示错误消息,否则显示成功消息。谢谢你的帮助

请详述一些问题,至少包括问题是什么。另外,您是否在寻找验证本身或错误处理方面的帮助?我遇到的问题是,它似乎在为每个字段发送每个firebug参数的值,但我得到返回的错误就好像没有填写一样。我已经用了几十次以上的结合卷曲,但今天我搞砸了一些东西。我看不到任何错误,从树上看不到森林。thx,我知道有更好的方法进行服务器端验证,我只是想确保在继续之前填写好字段。您应该包括表单代码,如果这是一个常见的HTML错误,我不会感到惊讶。另外,请记住,如果值为字符串0,则empty将返回TRUE,因此您可能需要重新考虑最后一位。@Wesley,很好,您能给出更好的选择吗?我会编辑并发布表单代码