PHP simple maths quiz program

2020-05-06 11:21发布

I'm trying to create a maths quiz page. The first page needs to generate a question shown as a header, that asks the user what two random numbers are multiplied together. Then depending on the users input, it takes them to a different page. If they are correct it displays the paragraph "You are correct!". If they are wrong it displays the paragraph "You are incorrect" and invites the user to try again. and if they enter a string it displays the paragraph "I don't understand your response" and invites the user to try again.

So far I have the below code, the layout is correct but the header isn't working, and I've attempted to display a new page, but again, they don't load. Anyone know where I'm going wrong?

<?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>

标签: php html math
2条回答
Emotional °昔
2楼-- · 2020-05-06 11:39

You must have the header() code before any output, especially that echo statement.

查看更多
够拽才男人
3楼-- · 2020-05-06 11:47

Apart from sending the headers before you output something, i think your form action is wrong, it should be

action="<?php echo $_SERVER['PHP_SELF']; ?>"

You are sending the POST via FILE protocol, it won't be processed by Web Server/PHP.

And also, you are not POSTing "first" and "second" fields.

查看更多
登录 后发表回答