2016-10-10 56 views
2

我已經寫了幾行PHP代碼來確保表單元素不會是空的anytion.the算法是如果表單字段不是空的,它會回聲out okay「,如果提交的表單保持空白,它會回顯」不好「。但問題是,每次我提交表單時,儘管保持填充不正確,仍然輸出」Okay「。 我已檢查的代碼,但找不到任何problem.here是我定的代碼波紋管,請看看,如果你發現任何錯誤,讓我知道:PHP表單驗證沒有工作,因爲它預計是

<?php 
if(isset($_GET['day']) && isset($_GET['date']) && isset($_GET['year'])){ 
    $day=isset($_GET['day']); 
    $date=isset($_GET['date']); 
    $year=isset($_GET['year']); 
    if(!empty($day) && !empty($date) && !empty($year)){ 
     echo "okay"; 
    }else{ 
     echo "please fill"; 
    } 
} 

?> 
<form action="herok.php" method="GET"> 
    Day:<br><input type="text" name="day" /><br> 
    Date:<br><input type="text" name="date" /><br> 
    Year:<br><input type="text" name="year" /><br> 
    <input type="submit" value="submit" /> 
</form> 

回答

0

請試試這個:

<?php 
if(isset($_GET['day']) && isset($_GET['date']) && isset($_GET['year'])){ 
    $day=!empty($_GET['day']) ? $_GET['day'] : '' ; 
    $date=!empty($_GET['date']) ? $_GET['date'] : '' ; 
    $year=!empty($_GET['year']) ? $_GET['year'] : '' ; 
    if(!empty($day) && !empty($date) && !empty($year)){ 
     echo "okay"; 
    } else{ 
     echo "please fill"; 
    } 
} 

?> 
0

if語句塊中刪除isset

<?php 
if(isset($_GET['day']) && isset($_GET['date']) && isset($_GET['year'])){ 
    $day=$_GET['day']; 
    $date=$_GET['date']; 
    $year=$_GET['year']; 
    if(!empty($day) && !empty($date) && !empty($year)){ 
     echo "okay"; 
    }else{ 
     echo "please fill"; 
    } 
}else{ 
    echo "please fill"; 
} 
+0

就像魅力..感謝 –

+0

@heroksiddiqi如何接受答案? – someone

0

如何使它更簡單的這樣。

$vars = array('day','date','year'); 
    $cecked = true; 
    foreach($vars as $v) { 
     if (!isset($_GET[$v]) || empty($_GET[$v])) { 
      $cecked = false; 
     } 
    } 
    if (!$cecked) { 
    echo "please fill all require data"; 
    exit(); 

    } else { 
echo "oke"; 
}