Я в некотором роде новичок в программировании (в настоящее время учусь на курсе), и наша задача на выходных состоит в том, чтобы создать веб-сайт (действительно базовый), в котором мы должны решить добавление двух случайных чисел. Я смог создать эти случайные числа, но с другой стороны, создать нечто вроде поля, которое пользователь (в данном случае я) должен заполнить и «отправить»; и тогда сайт должен показать мой собственный ответ и правильный. В дополнение к этому я столкнулся с тем, что при создании функции отправки веб-сайт обновляется, и эти случайные числа меняются каждый раз.
Мой код выглядит следующим образом (извините за использование немецких терминов):
<?php
$zufallszahl = rand(1,100) . "+";
$zufallszahl1= rand(1,100);
$solution= bcadd($zufallszahl,$zufallszahl1);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Homework Taschenrechner</title>
</head>
<body>
<h1>Additionen</h1>
<hr>
<h4>Addiere die folgenden Zahlen:</h4>
<p> <?php echo $zufallszahl; echo $zufallszahl1 ?> <p>
<form method="post">
<input type="number" name="Usereingabe" min="0" placeholder="Deine Antwort">
</form>
</body>
</html>
Я был бы очень признателен за «простое» решение, я погуглил этот вопрос уже час, но большинство решений слишком сложны для меня сейчас, и я в итоге не понимаю, о чем этот код. Итак, просто подытожив, я хотел бы знать, как создать поле отправки, которое не обновляет веб-сайт, чтобы случайные числа оставались, и поле, которое «проверяет» ответ и говорит, что оно истинно / ложно.
3 ответа
Хотя, если бы вам разрешили использовать JS, это было бы намного проще. Однако, поскольку вы хотели это только на PHP, приведенный ниже код должен работать. Не стесняйтесь изменять его в соответствии с вашими потребностями
<?php
if(!isset($_POST['zufallszahl']) && !isset($_POST['zufallszahl1'])) {
$zufallszahl = rand(1,100);
$zufallszahl1= rand(1,100);
// $solution= bcadd($zufallszahl,$zufallszahl1);
} else {
$zufallszahl = $_POST['zufallszahl'];
$zufallszahl1 = $_POST['zufallszahl1'];
$solution = bcadd($zufallszahl,$zufallszahl1);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Homework Taschenrechner</title>
</head>
<body>
<h1>Additionen</h1>
<hr>
<h4>Addiere die folgenden Zahlen:</h4>
<p> <?php echo $zufallszahl . " + "; echo $zufallszahl1 ?> <p>
<form method="post">
<input type="number" name="zufallszahl" value="<?php echo $zufallszahl; ?>" readonly />
<input type="number" name="zufallszahl1" value="<?php echo $zufallszahl1; ?>" readonly />
<input type="number" name="Usereingabe" min="0" placeholder="Deine Antwort" value="<?php echo $_POST['Usereingabe'] ?? ''; ?>">
<button>Check Answer </button>
<?php if(isset($_POST['Usereingabe'])){ ?>
<?php if($_POST['Usereingabe'] == $solution)
echo "Correct Answer";
else {
echo "Wrong Answer. Correct answer is $solution";
} ?>
<?php } ?>
</form>
</body>
</html>
< Сильный > Примечание Если вы используете версию ниже PHP 7
, просто используйте <?php echo isset($_POST['Usereingabe'])? $_POST['Usereingabe'] : ''; ?>
вместо <?php echo $userSolution ?? ''; ?>
Таким образом, вы можете хранить их в переменной _SESSION, а когда они отправляют ответ, вы можете сравнить переменную _POST с переменной _SESSION.
<?php
if(isset($_POST['Usereingabe']))
{
if($_POST['Usereingabe'] == $_SESSION['sol']){
$check = "correct answer";
}
else
{ $check = "wrong answer"; }
}
else {
$zufallszahl = rand(1,100) . "+";
$zufallszahl1= rand(1,100);
$solution= bcadd($zufallszahl,$zufallszahl1);
$_SESSION['zufallszahl1']=$zufallszahl1;
$_SESSION['zufallszahl']=$zufallszahl;
$_SESSION['sol']=$solution;
}
// do anything else u want
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Homework Taschenrechner</title>
</head>
<body>
<h1>Additionen</h1>
<hr>
<h4>Addiere die folgenden Zahlen:</h4>
<?php if(isset($check)) { echo $check; } ?>
<p> <?php echo $_SESSION['zufallszahl']; echo $_SESSION['zufallszahl1']; ?> <p>
<form method="post" action="*your file.php*">
<input type="number" name="Usereingabe" min="0" placeholder="Deine Antwort">
<button type="submit">Submit!</button>
</form>
</body>
</html>
Вы можете использовать два дополнительных входных тега в форме type="hidden"
, которые содержат случайные числа в своих полях значений, и проверить, не являются ли они пустыми. Если они есть, генерируйте новые, в противном случае сохраняйте старые.
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.