【问题标题】:Check if $_GET variable contains letters检查 $_GET 变量是否包含字母
【发布时间】:2013-02-21 12:56:43
【问题描述】:

我有一个名为page$_GET 变量,它只能包含数字。到目前为止,我设法制定了其他规则,比如它是否为空以强制页面等于 1,或者它是否大于页面总数以带来错误消息,但我不能做的一件事就是让它如此当用户输入字母而不是数字时,例如:page=d;接收错误消息。

有什么建议吗?

【问题讨论】:

标签: php get


【解决方案1】:

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

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

记住还要确保设置了$_GET['page']

【讨论】:

  • 这对我来说是最好的选择,因为它会捕获变量 $_GET['page'] 的所有其他变体,只允许 [0-9] 整数。
【解决方案2】:
if(isset($_GET['page']) && preg_match('/^\d+$/', $_GET['page'])){
    echo 'only numbers';
}

【讨论】:

    【解决方案3】:

    你可以试试:

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

    【讨论】:

      猜你喜欢
      • 2018-04-23
      • 1970-01-01
      • 1970-01-01
      • 2015-01-04
      • 1970-01-01
      • 2020-08-08
      • 2011-07-11
      • 1970-01-01
      相关资源
      最近更新 更多