数値のみを含む$_GET
名前の変数が 1 つあります。page
これまでのところ、ページが空である場合に強制的にページが 1 になるようにする、またはページの総数よりも大きい場合にエラー メッセージを表示するなど、他のルールを作成することができましたが、私ができないことの 1 つは、そのようにすることです。ユーザーが数字の代わりに文字を入力した場合: page=d
; エラーメッセージを受け取ります。
助言がありますか?
を使用is_numeric
すると、16進数がすり抜けることができます。[0-9]のみを許可するには、次を使用できます。
if (!ctype_digit($_GET['page'])) {
// Error message here.
}
また、それが設定されていることを確認することを忘れないでください$_GET['page']
。
if(isset($_GET['page']) && preg_match('/^\d+$/', $_GET['page'])){
echo 'only numbers';
}
あなたが試すことができます :
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}