-1

私はこのコードを持っています:

if($_POST['badge_id'] != 'USN' OR $_POST['badge_id'] != 'VA2' OR $_POST['badge_id'] != 'PET01' OR $_POST['badge_id'] != 'GLD' OR $_POST['badge_id'] != 'BR149' OR $_POST['badge_id'] != 'DK032' OR $_POST['badge_id'] != 'COM09' OR $_POST['badge_id'] != 'KH0' OR $_POST['badge_id'] != 'COM03' OR $_POST['badge_id'] != 'US8' OR $_POST['badge_id'] != 'UK118' OR $_POST['badge_id'] != 'SE044' OR $_POST['badge_id'] != 'ESV' OR  $_POST['badge_id'] != 'SGR' OR $_POST['badge_id'] != 'SG5' OR $_POST['badge_id'] != 'NO006' OR $_POST['badge_id'] != 'NO050' OR $_POST['badge_id'] != 'NO051' OR $_POST['badge_id'] != 'NO052' OR $_POST['badge_id'] != 'NO053' OR $_POST['badge_id'] != 'NO055' OR $_POST['badge_id'] != 'NO056' OR $_POST['badge_id'] != 'NO060' OR $_POST['badge_id'] != 'NO061' OR $_POST['badge_id'] != 'NO063' OR $_POST['badge_id'] != 'NO064' )
                $error[] = "The ID IS NOT WORKING.";

しかし、うまくいきません。入力をフィルタリングする必要がありますが、IDが機能していないと彼は言いますか

4

3 に答える 3

2

コードをより読みやすく、パフォーマンスを向上させ、同時により多くの機能を実現します。

$validValues = [
    'option1',
    'option2',
    'option3',
    'option4',
    'option5',
    'option6'
];
if(!in_array($_POST['badge_id'], $validValues))
    $error[] = 'The ID is not working';
于 2013-05-07T16:14:42.940 に答える
0

if ステートメントの方法は、常に true を返すことを意味します (これは何が起こっているかの例です)。

LET a = 1

  (a != 1 OR a != 2) 
= (FALSE OR TRUE) 
= TRUE

チェックする Badge_id が非常に多いので、それらを配列に入れて、PHP のin_array関数を使用します。

例:

<?php
$badges = array('USN', 'VA2', 'PET01', 'GLD', 'BR149', 'DK032'); // etc.
if(!in_array($_POST['badge_id'], $badges))
{
    $error[] = 'The ID is not working.';
}
于 2013-05-07T16:14:43.733 に答える
0

OR の代わりに AND を使用すべきではありませんか? すべての条件を真にする必要があります。つまり、値は value1 AND value2 AND ... とは異なる必要があります。

if($_POST['badge_id'] != 'USN' && $_POST['badge_id'] != 'VA2' && $_POST['badge_id'] != 'PET01' && $_POST['badge_id'] != 'GLD' && $_POST['badge_id'] != 'BR149' && $_POST['badge_id'] != 'DK032' && $_POST['badge_id'] != 'COM09' && $_POST['badge_id'] != 'KH0' && $_POST['badge_id'] != 'COM03' && $_POST['badge_id'] != 'US8' && $_POST['badge_id'] != 'UK118' && $_POST['badge_id'] != 'SE044' && $_POST['badge_id'] != 'ESV' &&  $_POST['badge_id'] != 'SGR' && $_POST['badge_id'] != 'SG5' && $_POST['badge_id'] != 'NO006' && $_POST['badge_id'] != 'NO050' && $_POST['badge_id'] != 'NO051' && $_POST['badge_id'] != 'NO052' && $_POST['badge_id'] != 'NO053' && $_POST['badge_id'] != 'NO055' && $_POST['badge_id'] != 'NO056' && $_POST['badge_id'] != 'NO060' && $_POST['badge_id'] != 'NO061' && $_POST['badge_id'] != 'NO063' && $_POST['badge_id'] != 'NO064' )
            $error[] = "The ID IS NOT WORKING.";
于 2013-05-07T16:11:27.647 に答える