检查变量是否是PHP中的整数

时间:2015-06-01 05:44:29

标签: php variables numbers

我正在做一个分页脚本,我想让用户能够控制在一个页面中显示多少结果。我通过使用GET变量来实现这一点,如:example.org/articles.php?count=10。唯一的问题是GET变量必须是整数,否则代码会抛出随机错误,其中一些包含用户不应该看到的信息。

这是我的代码:

// Checks if there is a GET variable (this part works fine)
if (isset($_GET["count"])) {
    if (!empty($_GET["count"])) {
        $page_rows = $_GET["count"];
    } else { 
        $page_rows = $page_rows_default;
    }
} else { 
$page_rows = $page_rows_default;
}

// checks if the GET variable is an interger
// if not, the offending value is replaced with 0 
// (it doesn't work)
if(is_int($page_rows) == false) {
    $page_rows = 0;
}

从我的实验中,我的代码可以容忍零和负整数,但在给出像?count=asdf这样的东西时却很难。我大多不希望用户通过将随机文本注入GET变量来使脚本崩溃。如何让脚本自动检测非整数值,以便处理它们而不是简单地停止代码?

2 个答案:

答案 0 :(得分:2)

您可以使用@Aspect @Component public class SampleAspect { // Apply to all repositories in package repositories @After("execution(* repositories.*.delete(*)) && target(repository) && args(id)") public void afterEntityDelete(CrudRepository repository, Object id) { ... } } 。 供参考http://php.net/manual/en/function.is-numeric.php

答案 1 :(得分:2)

is_numeric()可以为你完成这个技巧

if(is_numeric($page_rows))
{
   //your condition 
}
else
{
 //another condition
}