-3

数値のみを含む$_GET名前の変数が 1 つあります。pageこれまでのところ、ページが空である場合に強制的にページが 1 になるようにする、またはページの総数よりも大きい場合にエラー メッセージを表示するなど、他のルールを作成することができましたが、私ができないことの 1 つは、そのようにすることです。ユーザーが数字の代わりに文字を入力した場合: page=d; エラーメッセージを受け取ります。

助言がありますか?

4

3 に答える 3

6

を使用is_numericすると、16進数がすり抜けることができます。[0-9]のみを許可するには、次を使用できます。

if (!ctype_digit($_GET['page'])) {
    // Error message here.
}

また、それが設定されていることを確認することを忘れないでください$_GET['page']

于 2013-02-21T13:01:04.447 に答える
1
if(isset($_GET['page']) && preg_match('/^\d+$/', $_GET['page'])){
    echo 'only numbers';
}
于 2013-02-21T12:59:44.757 に答える
0

あなたが試すことができます :

function isNumberKey(evt)
      {
         var charCode = (evt.which) ? evt.which : event.keyCode
         if (charCode > 31 && (charCode < 48 || charCode > 57))
            return false;

         return true;
      }
于 2013-02-21T13:22:07.340 に答える