如何解决为什么此PHP验证返回错误味精?
| 这很简单,但是我无法弄清楚为什么我在这里经常收到错误消息,它看起来正确并且在其他应用程序中也可以正常工作。这不应该是因为它在返回错误之前就返回了错误,请帮助!我一直盯着我这么久,直到“从树上看不到森林”的角度。 的PHP<?php
if(empty($_POST[\'Contact0FirstName\']) || empty($_POST[\'Contact0LastName\']) ||
empty($_POST[\'Contact0Email\']) || empty($_POST[\'Contact0Phone1\']) ||
empty($_POST[\'CaptchaInput\']) || !empty($_POST[\'LeadBlind\'])) {
echo \"Please fill out all fields marked *\";
die();
} else {
//curl stuff
}
?>
和形式
<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>
在Firebug中,它显示了传递给字段的值,但是我得到了\“请填写所有标有* \”的错误。
解决方法
!empty($_POST[\'LeadBlind\'])
没有其他导致问题的了
尝试使其检查是否为空
否则尝试一一删除字段,看看问题出在哪里
除此以外
在<?php
标签后添加var_dump($_POST);
,在这之间:
<?php
if(empty($_POST[\'Contact0FirstName\']) ...
请放一个
print_r($_POST);
并确保您从中访问数据的所有键均正确且已填充。
IE浏览器:
<?php
print_r($_POST);
if(empty($_POST[\'Contact0FirstName\']) ...
,!empty($_POST[\'LeadBlind\']
该字段只能为空,因为它是隐藏的,并且您没有为其分配值。
另外,这是非常差的HTML(应该关闭标签),我会在表单中设置的每个$_POST
字段中使用isset()
函数。因为如果一个字段没有值且正在发送表单,则“ 10”数组中首先没有条目。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。