为什么PHP验证返回错误消息?

为什么PHP验证返回错误消息?,php,validation,Php,Validation,这是愚蠢的简单,但我不明白为什么我总是在这里得到错误消息,它看起来是正确的,在其他应用程序中正常工作……这是因为“0”零吗?这不应该是因为它返回的错误之前,它得到任何其他东西,请帮助!我已经盯着这个看了这么久了,我已经到了“从树上看不见森林”的地步 PHP 形式呢 <form id="Lead" method="post" action="PHP/Lead.php" accept-charset="UTF-8"> <ul id="Lead

这是愚蠢的简单,但我不明白为什么我总是在这里得到错误消息,它看起来是正确的,在其他应用程序中正常工作……这是因为“0”零吗?这不应该是因为它返回的错误之前,它得到任何其他东西,请帮助!我已经盯着这个看了这么久了,我已经到了“从树上看不见森林”的地步

PHP


形式呢

<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="Contact0LastName">2 | Last Name*</label>
                        <label for="Contact0Email">3 | Email*</label>
                    </li>
                    <li>
                       <input type="text" name="Contact0FirstName" id="Contact0FirstName">
                        <input type="text" name="Contact0LastName" id="Contact0LastName">
                        <input type="text" name="Contact0Email" id="Contact0Email">
                    </li>

                    <li>
                        <label for="Contact0Phone1">4| Daytime Phone*</label>
                        <label for="Contact0Phone2">5| Evening Phone</label>
                        <label for="CaptchaInput">6| Please enter the code</label>
                    </li>
                    <li>
                        <input type="text" name="Contact0Phone1" id="Contact0Phone1">
                        <input type="text" name="Contact0Phone2" id="Contact0Phone2">
                        <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>

                    <li class="text">You will get 30 days of NinjaTrader + Rithmic (the data feed) to experience how trading should really be.</li>
                    <li class="text"><a href="mailto:support@tradersplatform.com?subject=Trader's Platform Support Request">Email Support</a> or call 800 771 6748 (Optimus Trading Group)</li>
                </ul>
                <div class="clear"></div>
            </form>

  • *必填字段
  • 1 |名字* 2 |姓* 3 |电子邮件*
  • 4 |日间电话* 5 |夜间电话 6 |请输入代码
  • 提交您的请求
  • 您将获得30天的NinjaTrader+Rithmic(数据源)体验交易的真实情况
  • 或致电800 771 6748(Optimus Trading Group)
在firebug中,它用一个值显示通过的字段,但返回“请填写所有标记为*的字段”错误

在此之间:

 <?php
      if(empty($_POST['Contact0FirstName']) ...
并确保从中访问数据的所有密钥都正确且已填充

即:


此字段只能为空,因为它是隐藏的,并且您没有为其指定值

另外,这是非常糟糕的HTML(标签应该关闭),我会在表单中设置的每个
$\u POST
-字段上使用
isset()
-函数。因为如果一个字段没有值并且表单正在发送,那么在
$\u POST
-数组中首先没有条目

!empty($_POST['LeadBlind'])
没有别的东西会导致这个问题

试着让它检查它是否是空的 否则,请尝试逐个删除字段,以查看问题的确切位置

否则


添加
var\u转储($\u POST)
不错,同样的想法之后,facebook让我先发布它=PI使用“铅盲”来“尝试”和检测机器人,因为这是一个人类看不到的隐藏字段,所以如果机器人填充了它,然后它有一个值-它失败了。哪个机器人会填充隐藏字段?我把打印($\u post);它在firebug数组()中返回这个值。请填写所有标记为*的字段。您可以在firebug中查看它,但只需在实际运行代码的页面上查看源代码,您就会看到一个带有键(表单键)的数组和值…将它们匹配起来,看看是否有拼写错误。我把它完全像上面的第二行一样放在第二行,它在第2行返回了一个解析错误。我有“铅盲”来尝试检测机器人,这是一个隐藏的输入,如果机器人填写它应该返回和错误。人们不会看到它,因此不应该填写它。我错了吗?您的php信息是什么,您可能使用的是过时的版本(4)或其他什么,或者您编写错了,请尝试使用phpinfo();把版本还给我
print_r($_POST);
<?php
print_r($_POST);
if(empty($_POST['Contact0FirstName']) ...
!empty($_POST['LeadBlind']
!empty($_POST['LeadBlind'])