如何检查每个盒子是否有价值输入?
问题描述:
我的第一页在用户生日的月份和日期里有两个框,在这个页面上我想通过并确保两个框都填满了,如果没有回复出这样的消息。我现在面临的问题是,即使两个框都有值,每次都会弹出消息。如何检查每个盒子是否有价值输入?
<?php
$valuesRecieved = true;
for($v = 0; $v < sizeof($_POST); $v++)
{
if(!(isset($_POST[$v]))
{
$valuesRecieved = false;
break;
}
}
if(!$valuesRecieved)
{
echo "You must enter a value for each box. Please click your browsers back button, and try again.";
}
?>
答
看起来像你的主要问题是,你做$allEntered
,而不是$valuesReceived
最后检查 - 所以,如果你改变$allEntered
到$valuesReceived
- 你应该是不错的。
但你也应该考虑以下几点:
除非你的形式复选框被命名的数字,并且在这两个输入是你的唯一,你的循环将无法正常工作。相反,您应该使用foreach
循环。此外,如果有人要修改您的客户端代码,他们可以通过从表单中删除某些内容来绕过此逻辑。所以,如果你想确保一切都被填满,那么你需要明确地命名你想要的东西,如下所示:
foreach(array("bday_month","bday_day") as $value){
// the values in this ^array should correlate
// with the names of your form inputs
if(empty($_POST[$value])){
$valuesRecieved = False
}
}
+0
谢谢,效果很好! – Brit24
什么是'$ allEntered'? –
向我们发送HTML? –
抱歉,一次处理两件事,只是更新了它。 – Brit24