PHP simple maths quiz program

2020-05-06 11:01发布

问题:

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>

回答1:

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



回答2:

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.



标签: php html math