在下面的代码中,我控制数据库中的id是否为数字。我的问题是:我测试id的正则表达式总是给数字0返回永远不会为1 - 即使id是数字。
你能帮我解决一下吗?
这是带问题的代码:
$muster = "|^[0-9]+$|";
if(preg_match($muster, $_POST["Anzahl"]) == 0 || preg_match($muster, $_POST["id"]) == 0 || $_POST["Anzahl"] < 1) {
die("<a href='javascript:history.back()'>Eingabe überprüfen</a>");
}
答案 0 :(得分:0)
我会使用PHPValidate过滤器
更简单,更方便:
<?php
$str = "100";
if (filter_var($str, FILTER_VALIDATE_INT)) {
echo("Variable is an integer");
} else {
echo("Variable is not an integer");
}
?>
如果filter_var(($str, FILTER_VALIDATE_INT))
成功,它将返回100作为整数,否则为false
顺便说一下有很多有用的过滤器:http://php.net/manual/de/filter.filters.validate.php