0

ご覧のとおり、単純な登録フォームと、いくつかのフィールドを検証するためだけの PHP スクリプトがあります。ここでの考え方は、20 以上のフィールドがあり、少なくともユーザーに .. username、lastname および ageを入力する必要がある場合、以下で行ったように配列に格納するということです。

$needed = array("username", "lastname", "age");コードでわかるように、forループを実行して、それらの 1 つが満たされているかどうかを確認します。これで、コードはほとんどの部分で機能します。例: 3 つのフィールドに入力しない場合、次のように表示されます。

続行するにはユーザー名を入力する必要があります

続行するには姓を入力する必要があります

続行するには、年齢を満たす必要があります

ただし、フィールドを埋めて他の 2 つを残した場合、または 2 つを埋めてから 1 つを残した場合、それはエコーします。'<p>Required fileds are filled</p>';

したがって、ここでの問題は、スクリプトが次のように言う前に、すべてのフィールドに入力する必要があることです。echo '<p>Required fileds are filled</p>';

<pre>
<form action='' method='POST'>
    <input type='text' name='username' />
    <input type='text' name='lastname' />
    <input type='text' name='age' />
    <input type='text' name='gender' />
    <input type='text' name='country' />
    <input type='submit' name='reqirester' />
</form>


<?php 

    $needed = array("username", "lastname", "age");

  if($_POST):
    $check = NULL;
for($i=0; $i < count($needed); $i++){

        if($_POST[$needed[$i]] == ''){
          echo '<p>You must fill '.$needed[$i].' to continue<p/>';
        break;  

        }else {
            echo '<p>Required fileds are filled</p>';
        }
    }
 endif;
4

2 に答える 2