PHP ElseIf заявление с числами - PullRequest
0 голосов
/ 10 февраля 2012

Пользователь может ввести только число от 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;
}

Однако всегда выплевывает 5.

Ответы [ 2 ]

4 голосов
/ 10 февраля 2012

Ну, вы сравниваете строки, а не целые числа.Попробуйте $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;
0 голосов
/ 10 февраля 2012
$max = intval($_POST['max']);
if($max < 0 || $max > 5){
   $max = 5;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...