2

私はフォームを作成しています(楽しい)が、明らかにそれらは退屈になる可能性があり、ここに座って検証関数を書いているので、疑問に思っています...

たとえば、3 つのフィールドがあるとします* (名前、姓、年齢) *

変数は

$fname = $_POST['name'];
$lname = $POST['lname'];
$age = $_POST['age'];

そして、空のIDをチェックしたいとします

if(empty($fname) || empty($lname) || empty($age)){
//do something
}

これをより管理しやすくする方法はありますか?フォームの 3 つのフィールドの代わりに 100 のフィールドがあると言うと、非常に手に負えなくなります。

en-mass を確認する方法はありますか?

4

5 に答える 5

2
$required_fields = array("name", "address", "phone", "email");
foreach ($require_fields as $field) {
    if (!strlen($_POST[$field])) {
        echo "$field cannot be empty";
    }
}

編集: $_POST 配列を取得できます

foreach ($_POST as $key => $name) {
            $required_fields[] = "$key=$name";
        }
于 2013-03-30T09:23:35.037 に答える
1

if(empty($_POST)){..}else{...}複数の値が設定されている場合に応じて、結果が得られます 。または値がまったく設定されていません。True/False のようなものです。

ただし、 「送信ボタン」自体に を含めないvalue=''でください。そうしないと、常に True の結果が得られます。グローバルなので$_POST、送信ボタンの値もチェックします。または、クエリから 1 つの値を差し引くことができます。オプションで、次の方法で値をデバッグできますvar_dump($_POST)

「少なくとも1つのフィールドが空ではない」ことを確認したい場合は、

if(count($_POST) !=0){
   echo ' at least one value is set';}
else {echo 'no value is set';}

少なくとも 1 つの項目が送信されているかどうかを確認します。

于 2013-03-30T09:19:08.527 に答える
1

それらをすべてチェックしたい場合は、の行に沿って何かをしてください。

if(!empty($_POST)){

   foreach($_POST as $key => $val){
      if(empty($val)){
          // An empty field exists. Your action here.
      }
   }
}

チェックされていないチェックボックスがページにある場合、空の $_POST エントリは返されず、まったく存在しないことに注意してください。

そのため、if ステートメントでチェックボックスをチェックする必要があります。

たとえば、チェックボックスの名前は「同意する」です

if(!isset($_POST['agree'])){
   // Checkbox not ticked.
}
于 2013-03-30T09:19:52.590 に答える
0

各投稿キーを確認する

if(isset($_POST) && count($_POST)!=0){
  foreach($_POST as $key=>$val){
     if(空($key)){
        /* 何かをする */
     }
  }
}
于 2013-03-30T09:24:45.897 に答える
0

ところで。もしあなたがそうするなら

$fname = $_POST['name']

そして、フィールドはあなたが得るフォームではありません

注意: 未定義のインデックス...

より良い使用

$fname = !empty($_POST['name']) ? $_POST['name'] : '';
于 2013-03-30T09:25:30.970 に答える