フォームの空のフィールドをチェックするために、PHPで検証関数(またはクラス)を作成したいと考えています。 事は、フィールドを次々にチェックしたいのですが、空のフィールドがある場合は、 "-field_name-は空です"というメッセージが表示されます。 どれも...PHPの1つの 'small'関数で複数のフィールドを検証する
スクリプトの残りを継続空でない場合は、私はすでにそれが複数のネストされた場合-else文を使用して作られてきた....が、よりコンパクトで、プログラマに優しい方法がある場合、私は思っていました。 私はforeach文で渡す配列を使ってみましたが、私はスイッチループを使います。
ネストされた場合は、他の人の私が説明した第二のケースはこれです
function no_empties($first_name,$last_name,$username,$password,$password2,$user_email,$user_email2)
{
if (!empty($first_name))
{ if (!empty($last_name))
{if (!empty($username ))
{if (!empty($password ))
{if (!empty($password2))
{if (!empty($user_email))
{if (!empty($user_email2))
{return TRUE;}
else{ js_msg("Please retype your email!");return FALSE;};
}
else {js_msg("Please enter a -valid- email!"); return FALSE;};
}
else{js_msg("Please retype your password!");return FALSE;};
}
else {js_msg("Please enter a password!" ); return FALSE;};
}
else {js_msg("Pleas enter a username!"); return FALSE;};
}
else { js_msg("Please enter your last name!"); return FALSE;};
}
else { js_msg("Please enter your first name!"); return FALSE;};
}
:
$fields_array = array("first name"=>$first_name,"last name"=>$last_name,"username"=>$username,"password"=>$password,"retype password"=>$password2,"email"=>$user_email,"retype email"=>$user_email2);
function TEST($fields_array)
{
foreach ($fields_array as $field_name => $input)
{
switch (empty($input)) :
case TRUE: return $output="The -{$field_name}- field is empty
"; break;
case FALSE:return $output= "No field is empty!!! Hooray!
"; break;
endswitch;
}
}
それが動作しているが、私はこのようにそれを使用することはできません。
if (TEST($fields_array)==TRUE): echo $output; else: echo $output; endif;
さらに、コードが各フォームのフィールド数に無関係な形式であれば完璧です。誰かが $ fields = array( "first" => $ first、etc ....)のような配列を入力するだけです。
いずれかの考え???????
本当にきれい。それは、異なる種類のバリデーションを多数保持することができ、6ヶ月後に読んで変更するのは本当に簡単です。しかし、どういうわけか、どういうわけか、すべてのフィールドで間違っていることを特定の情報をユーザーに返すことはできないと思います。多くのありがとう –
エラーをどのようにエコーしますか?ありがとう。 – Khakali