0

这是我用于至少 3 个字符检查的简单代码。如果查询是全数字的,我想例外(代码还可以选择按大小写 ID 进行搜索,这些 ID 短于 3 个字符)。

<?php

if (strlen($_POST['Search'])>=3) {

include 'search.php';

} else {

$message = '3+ characters, please';

}

?>

感谢帮助 :)

4

3 回答 3

2

用这个:

if (strlen($_POST['Search'])>=3 ||is_numeric($_POST['Search'])) {
  //Do stuff
} else
//do other stuff
于 2012-05-16T12:05:49.503 回答
1

如果我理解正确:

<?php

if (is_numeric($_POST['Search']) || strlen($_POST['Search'])>=3) {

?>
于 2012-05-16T12:05:00.187 回答
1

你应该这样写:

// make sure no notices are emitted if the input is not as expected
$search = isset($_POST['Search']) ? $_POST['Search'] : null;

if (!ctype_digit($search)) {
    // it's all digits
}
else if (strlen($search) < 3) {
    // error: less than three characters
}
else {
    // default case
}

随意合并分支是默认情况,“所有数字”情况应转发到相同的代码。

重要提示 ctype_digit用于检查输入是否全为数字。is_numeric也将返回true其他类型的输入:

数字字符串由可选的符号、任意位数、可选的小数部分和可选的指数部分组成。因此 +0123.45e6 是一个有效的数值。也允许使用十六进制表示法 (0xFF),但只能没有符号、十进制和指数部分。

于 2012-05-16T12:08:03.460 回答