用户只能输入介于1和5之间的数字 - 如果输入0,则将该字段留空或输入大于5的数字,将默认重置为5.否则接受1,2,3,4。
$max=mysql_real_escape_string($_POST["max"]);
if ($max=="0" || $max==""){
$max_r="5";
} elseif ($max > "5"){
$max_r="5";
} else {
$max_r=$max;
}
然而它总是吐出来。
答案 0 :(得分:4)
嗯,你在比较字符串而不是整数。请尝试$max = (int) $_POST['max']
,不要将值包装在引号中。然后,在将其写入数据库之前,您始终可以转义$max
。
$max = (int) $_POST['max'];
if ( ! $max || $max > 5){
$max_r = 5;
} else {
$max_r = $max;
}
或者,你可以选择单线FTW:
$max_r = ( ! $max || $max > 5) ? 5 : $max;
答案 1 :(得分:0)
$max = intval($_POST['max']);
if($max < 0 || $max > 5){
$max = 5;
}