@BlackTritium

Почему все время ошибка, даже при вводе правильного числа?

<html>
<head>
    <meta charset="utf-8">
    <title>Bender Rodriguez v.0.1</title>
</head>
<body>
<h1>Bender v.0.1</h1>
<p>Сыграем?</p>
<img id="Bender" src="http://diabloprint.ru/img/Bender_Rodriguez.png" alt="Bender"><br>
<?php
$numOne = rand(1,10);
$numTwo = rand(1,10);
$answer = $numOne + $numTwo;
echo ('Ответ:');
echo($answer);
echo ('<br>Сколько будет:');
echo ($numOne);
echo (' + ');
echo ($numTwo);
echo ('<br>Мой ответ:');
echo htmlspecialchars($_POST["answerUser"]);
if($answerUser===$answer) // or if(call())
{
    echo('<br>Правильно');
}
else
{
    echo('<br>Неправильно');
}

$answered = $answer;
?>
<form method="post" action="index.php">
    <input name="answerUser" type="text" maxlength="20" size="25" value="" />
    <input type=submit value="Ответить"></form>

</body>
</html>
  • Вопрос задан
  • 2655 просмотров
Пригласить эксперта
Ответы на вопрос 2
icelaba
@icelaba
Знаю и умею всё
$answerUser===$answer должны совпадать типы, скорее всего в этом раскладе answer имеет тип Number а answerUser String
поэтому или использовать == или явно приводить к типу Number типа
1*$answerUser === $answer
Ответ написан
Комментировать
htmlspecialchars($_POST["answerUser"]) скорее всего приводит число к строке
if($answerUser===$answer) - три = это равенство, учитывая тип (целое или строка).
Либо строку надо привести к целому либо заменить на ==. Лучше первое.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы