检查$ _GET变量是否包含字母

时间:2013-02-21 12:56:44

标签: php get

我有一个名为$_GET的{​​{1}}变量,它只能包含数字。到目前为止,我设法制定其他规则,如果它是空的,强制页面等于1,或者它是否大于带错误信息的总页数,但我不能做的一件事就是这样做当用户键入字母而不是像page这样的数字时;收到错误信息。

有什么建议吗?

3 个答案:

答案 0 :(得分:5)

使用is_numeric将允许十六进制数字滑过。要仅允许[0-9],您可以使用:

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

请务必确保$_GET['page']已设置。

答案 1 :(得分:1)

if(isset($_GET['page']) && preg_match('/^\d+$/', $_GET['page'])){
    echo 'only numbers';
}

答案 2 :(得分:0)

您可以尝试:

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

         return true;
      }