ご覧のとおり、単純な登録フォームと、いくつかのフィールドを検証するためだけの 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;