2014-01-30 5 views
0

수학 퀴즈 페이지를 만들려고합니다. 첫 번째 페이지는 머리글로 표시된 질문을 생성해야하며, 사용자에게 두 개의 임의의 숫자가 함께 곱해 지는지 묻습니다. 그러면 사용자 입력에 따라 다른 페이지로 이동합니다. 올바른 경우 "You are correct!"단락이 표시됩니다. 틀린 경우 "You are incorrect"단락을 표시하고 다시 시도하도록 사용자를 초대합니다. 문자열을 입력하면 "귀하의 응답을 이해할 수 없습니다"라는 단락이 표시되고 사용자에게 다시 시도하도록 요청합니다.PHP 간단한 수학 퀴즈 프로그램

지금까지 아래 코드를 사용했지만 레이아웃은 정확하지만 헤더가 작동하지 않고 새로운 페이지를 표시하려고했지만 다시로드하지 않습니다. 누구 내가 잘못 가고 있는지 알아?

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

위치 재 지정을 수행하기 전에 헤더에 데이터를 전송하기 때문입니다. (암시, '에코'이동) – Ohgodwhy

+0

경고가 보이지 않습니까? 그렇지 않은 경우 사용하도록 설정하십시오. –

+0

@Ohgodwhy ack, 당신의 의견을 보지 못했습니다. – mellowfish

답변

2

당신은 모든 출력하기 전에 header() 코드가 특히 echo 문이 있어야합니다. 그렇다 전에 출력 뭔가를 헤더를 보내지 못하도록

1

, 난, 당신이 FILE 프로토콜을 통해 POST를 보내는

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

해야 양식 조치가 잘못된 생각, 그것은 웹 서버에 의해 처리되지 않습니다/PHP.

또한 "첫 번째"및 "두 번째"필드는 게시하지 않습니다.