如何检查每个盒子是否有价值输入?

如何检查每个盒子是否有价值输入?

问题描述:

我的第一页在用户生日的月份和日期里有两个框,在这个页面上我想通过并确保两个框都填满了,如果没有回复出这样的消息。我现在面临的问题是,即使两个框都有值,每次都会弹出消息。如何检查每个盒子是否有价值输入?

<?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."; 
} 

?> 
+0

什么是'$ allEntered'? –

+0

向我们发送HTML? –

+0

抱歉,一次处理两件事,只是更新了它。 – Brit24

看起来像你的主要问题是,你做$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