2017-04-20 92 views
0

我的第一頁在用戶生日的月份和日期裏有兩個框,在這個頁面上我想通過並確保兩個框都填滿了,如果沒有回覆出這樣的消息。我現在面臨的問題是,即使兩個框都有值,每次都會彈出消息。如何檢查每個盒子是否有價值輸入?

<?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

回答

2

看起來像你的主要問題是,你做$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