我想通過將發佈的值放入變量和這些變量到數組中,然後循環遍歷它們並輸出錯誤消息填寫。 我有兩個問題。首先,即使字段爲空或者==爲'未定義',if語句也會運行所有值,其次我不知道如何輸出變量的實際名稱而不是變量值。例如PHP數組的表單驗證 - 打印一個變量的名稱
$variable = 'hello';
print_x($variable)//prints 'variable' instead of 'hello'
我試圖將在下面示出了兩個方法。
$error_message = "The following fields must be filled in:<br />";
$fields_to_validate_arr = array($category,$producer,$product_name,$image_name,$description,$stock_quantity,$min_sale);
foreach($fields_to_validate_arr as $v){
if(empty($v) || $v = 'undefined'){//using variable bariables
//increment the error message with a custom error message.
$error_message .= "->" . ucwords(str_replace('_',' ',$v)) . "<br />";//no need to use variable variables
}
}
和不同的方法,在這裏我使用可變變量
$error_message = "The following fields must be filled in:<br />";
$fields_to_validate_arr = array('category','producer','product_name','image_name','description','stock_quantity','min_sale');
foreach($fields_to_validate_arr as $v){
if(empty($$v) || $$v = 'undefined'){//using variable bariables
//increment the error message with a custom error message.
$error_message .= "->" . ucwords(str_replace('_',' ',$v)) . "<br />";//no need to use variable variables
}
}
的變量是在我的代碼進一步上漲分配了類似的
$category = myescape_function($_POST['category']);
感謝
就個人而言,我會使用ctype_digit或類似的東西,而不是is_numeric,因爲is_numeric接受科學記數法,十六進制等等(這不是大多數人在驗證表單時要查找的東西)。 – preinheimer 2009-12-06 00:32:48