0

だから私はこのコードを持っていて、その一部はフォームであり、すべてのフィールドは絶対に必要です。

すべてを検証する必要があるための明確なドキュメントが見つかりません。

私はこのようなことをしますか?

$foo = $_POST['foo'];
$bar = $_POST['bar'];
$lorem = $_POST['lorem'];
$ipsum = $_POST['ipsum'];

$isSet = array($foo, $bar, $lorem, $ipsum);

if(isset($isSet)) { /* Do the stuff */ }

またはもっと良い方法はありますか?本当にやりたくない

if(isset($foo) && isset($bar) && isset($lorem)........ 

必要なフィールドが約12個あるからです

4

2 に答える 2

5

できるよ:

if (isset($foo, $bar, $lorem, $ipsum)) {.....}

一歩節約できます。

http://php.net/manual/en/function.isset.php

于 2012-08-14T23:06:19.030 に答える
2

空の文字列がある場合、issetはtrueを返すことに注意してください。だから、技術的には

isset($_POST['foo']) 

fooが空白の値で渡された場合、trueを返します。

foo=&bar=&...etc.

また、

isset(array())

trueを返します。

「」がこれらの変数のいずれかの有効な値でない場合は、次のようにします。

$requiredFields = array('foo', 'bar', 'lorem', 'ipsum');

$allValid = true;

foreach ($requireFields => $fieldName) {
    if (isset($_POST[$fieldName]) && $_POST[$fieldName] != "") {
        $allValid = $allValid && true;
    } else {
        $allValid = $allValid && false;
    }
}

if ($allValid) {
    //...success...
} else {
    //...failed...
}

基本的に、変数が渡されたこと、および変数が「」に設定されていないことを確認します。

お役に立てば幸いです。

于 2012-08-14T23:26:21.333 に答える