0

フォームが送信されたときに次のhttp文字列を出力するフォームがあります。

Field109 = E01&Field112 = E05&Field209 = Enter + the + message + here%21&Field110 =&Field111 =&Field113 =&Field114 =&Field115 =&Field116 =&Field117 =&Field118 =&Field119 =&Field120 =&CreatedBy = public&DateCreated = 2013-01-17 + 08%3A43%3A45&EntryId = 14&IP = 98.246.50.81&HandshakeKey =

送信を処理するPHPスクリプトでは、各フィールドをチェックして、設定されているかどうかを確認します。問題は、上記のように、送信時にフォームのフィールドが空の場合でも、HTTP文字列に残り、isset()設定されていると見なして、指示された処理を実行することです。

フィールドが本当に空であるかどうかを確認するにはどうすればよいですか?たとえばField110Field111は空である必要がありますが、私のPHPスクリプトはそれらが設定されていると見なします。

if (isset($_GET["Field110"])) {
    array_push($apnsarray, "E02");
}
if (isset($_GET["Field111"])) {
    array_push($apnsarray, "E03");
}
4

3 に答える 3

6

使用するempty()

if(!empty($_GET['Field110'])){
    array_push($apnsarray, "E02");
}
// etc...
于 2013-01-17T16:56:57.273 に答える
2

フィールドが本当に空であるかどうかを確認するにはどうすればよいですか?

empty()

isset() 変数が設定されていて、NULLでないかどうかを判別しますempty()一方、値が空かどうかを確認します

したがって、あなたの場合isset()、上記の定義によってtrueが返されます。代わりempty()に、値を必要とする値に使用してください。

于 2013-01-17T16:57:09.003 に答える
0

さて、可能な値は何ですか?0 と 0 しかない場合は、次のことをお勧めします。

if(isset($_GET['Field110']) && strlen(trim($_GET['Field110']) != 0) {
    // not empty
}

しかし、それが文字または 0 以外のものだけで構成される場合:

if(!empty($_GET['Field110'])) {
    //not empty
}

これはempty()ドキュメントからのものです:

The following things are considered to be empty:

"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)

空の()

于 2013-01-17T16:58:25.543 に答える