2010-03-02 64 views
2

我的php表單有必填字段,但是郵件不會讓用戶知道哪個字段沒有被輸入。我怎樣才能做到這一點?需要php表單來命名哪些必填字段尚未填寫

//if statement to check required fields 
if ($name && $phone && $email && && $address && $city && $state && $zip && $month && $date && $year && $contact)... 
    //if some required fields were not filled out 
    echo "Please make sure you fill in all required fields<br>Click <a href=\"javascript:history.back(1)\">here</a> to return to our form."; 
} 
+0

呃... ...是這些變量只是一個例子,或者你從'$ _POST'陣列創建它們(加也許有些過濾和/或驗證)或 - 注意 - 是否啓用了'register_globals'? – Franz 2010-03-02 21:40:39

回答

7

下面是一個簡單的例子...

// An array of required fields, these fields must not be empty 
$requiredFields = array('name', 'email'); 

// Iterate through required fields 
foreach ($requiredFields as $fieldName) 
{ 
    // Does this field have a value? 
    if (empty($_REQUEST[$fieldName])) 
    { 
     echo 'rawr! go back and fill out ' . $fieldName . "<br>\n"; 
    } 
}  
0

它看起來像每個那些都是布爾值;我假設你在單獨檢查每個值時設置它們。最後,我不想在最後使用一個echo,而是在開始時初始化一個$message變量,並將所有錯誤消息放在那裏。最後,只需echo $message'

0

只是繁瑣的if/else子句。你可以使用一個驗證框架來提醒這個問題。

if (empty($name)) 
    echo "Name is not filled out"; 
if(empty($phone)) 
    echo "Phone is not filled out"; 

如果你想獲得幻想這會工作

foreach (array("name","phone") as $var) 
{ 
    if (empty($$name)) 
     echo "$var is not filled out"; 
}