0

こんにちは私は私のコードに失敗しているようでした:

if (!empty($_POST['id'])) { 
    echo "empty";
} else {
    if (is_numeric($_POST['id'])) {
    echo "numeric!";
    } else {
    echo "not empty but not numeric how come?";
    }
}

私のブラウザのURL:hxxp:// localhost / upload /?id = 9

出力:数値ではありません

どうして?

助けてください。

4

5 に答える 5

2

使用する必要があります if(is_numeric($_GET['id'])) {


if (is_numeric($_GET['id'])) { 
    echo "yes numeric";
} else {
    echo "not numeric";
}
于 2012-11-19T12:26:03.493 に答える
1

最初:

if (!empty($_POST['id'])) { 
    echo "empty";
} else ...

あなたが言っているのは:変数が空でない場合は、「空」をエコーし​​、空の変数が数値であるかどうかをチェックしています(elseのコードは空の変数をチェックしているため、数値ではないと表示されます)

GETを介してPOST変数を取得しようとしているので、感嘆符を取り出し、postまたはgetメソッドの使用について明確にします。

于 2012-11-19T13:53:50.810 に答える
0

簡単な「id」は$_GET配列にありますが、$_POST配列に存在するかどうかを確認します

if (empty($_GET['id'])) { ... }

正しいはずです。次に、$ _GET['id']または$_REQUEST['id']を使用できます。

:$ _ REQUESTは、$_POSTおよび$_GETのすべての変数を保持します

正しいコードは次のとおりです。

 if (empty($_GET['id'])) { 
     echo "empty";
 } else {
     if (is_numeric($_GET['id'])) {
         echo "numeric!";
     } else {
         echo "not empty but not numeric how come?";
     }
 }

$ _GETの代わりに、$_REQUESTを使用することもできます

于 2012-11-19T12:38:29.800 に答える
0

URL経由でパラメータを渡していると思うので、使用してください

if (is_numeric($_GET['id']))

または使用

if (is_numeric($_REQUEST['id'])) { 

そうしないと、未定義の変数が表示されるため、各ブロックにフォールバックします

于 2012-11-19T12:28:45.780 に答える