Я пытаюсь создать страницу викторины математики. На первой странице нужно сгенерировать вопрос, показанный в виде заголовка, который запрашивает у пользователя, какие два случайных числа умножаются вместе. Затем, в зависимости от ввода пользователей, он переносит их на другую страницу. Если они верны, он отображает абзац «Вы правы!». Если они ошибочны, он отображает абзац «Вы неверны» и предлагает пользователю повторить попытку. и если они вводят строку, она отображает абзац «Я не понимаю ваш ответ» и приглашает пользователя попробовать еще раз.
Пока у меня есть код ниже, макет правильный, но заголовок не работает, и я попытался отобразить новую страницу, но опять же, они не загружаются. Кто-нибудь знает, где я ошибаюсь?
<?php $first = Rand(1,10); $second = Rand(1,10); echo <h1>"What is " . $first . "times " . $second . "?"</h1>; if(is_int($_POST['answer']) == 1){ if($_POST['first']*$_POST['second'] == $_POST['answer']){ header("Location: correct.html"); exit(); } else{ header("Location: incorrect.html"); exit(); } } else if(is_string($_POST['answer']) == 1) { header("Location: response.html"); exit(); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Maths Quiz</title> </head> <body> <form method="POST" action="<?php echo $_SERVER['file:///X|/Software Development/PHP_SELF']; ?>"> <p>Answer<br/> <input type="text" id="answer" name="answer" /></p> <p></p> <button type="submit" name="submit" value="send">Submit</button> <input type="hidden" name="answer" value="<?php echo $answer; ?>"/></p> </form> </body> </html>
У вас должен быть код header()
перед любым выходом, особенно этот оператор echo
.
Помимо отправки заголовков, прежде чем вы вывести что-то, я думаю, что ваше действие формы неверно, оно должно быть
action="<?php echo $_SERVER['PHP_SELF']; ?>"
Вы отправляете POST через протокол FILE
, он не будет обрабатываться веб-сервером / PHP.
А также, вы не POSTING «первый» и «второй» поля.