2013-03-09 13 views
-3

* 它說未定義的索引和5時間fout是什麼意思錯誤,但如果我點擊正確它也說5次。 *未定義的測驗索引

該程序是測驗,重複問題後,如果它是錯的,他說fout,如果它是正確的,它說juist。

<!DOCTYPE html> 
<html> 
<head> 
<title>Talenquiz2</title> 
</head> 
<body> 
<?php 

session_start(); 
if(isset($_SESSION["vraagnr"])) 
{ 
    if (isset($_GET["controleer"])) 
    { 

    // The browser said that these 4 lines have an undefined index 
    $vraag = $_GET["vraag"]; 
    $juistantwoord = $_GET["juistantwoord"]; 
    $foutantwoord1 = $_GET["foutantwoord1"]; 
    $foutantwoord2 = $_GET["foutantwoord2"]; 

    $con = mysql_connect("localhost","root",""); 
    mysql_select_db("dbproject", $con); 
    $result = mysql_query("SELECT * FROM tblquizvragen"); 
    while($row = mysql_fetch_array($result)) 
    { 

     // Here is the program checking wich checkbox is checked and which is not 
     if (isset($_GET['ok']) && !isset($_GET['nee1']) && !isset($_GET['nee2'])) 
     { 
     echo "Dit is Correct."; 
     } 
     else 
     { 
     echo "Dit is fout."; 
     } 
    } 
    mysql_close($con); 
    echo "\n<hr />\n"; 
    } 
} 
else 
{ 
    $_SESSION["vraagnr"]=1; 
} 

$con = mysql_connect("localhost","root",""); 
mysql_select_db("dbproject", $con); 
$result = mysql_query("SELECT * FROM tblquizvragen WHERE id='". $_SESSION["vraagnr"] . "';"); 
$row = mysql_fetch_array($result); 
$vraag = $row['vraag']; 
$juistantwoord = $row['juistantwoord']; 
$foutantwoord1 = $row['foutantwoord1']; 
$foutantwoord2 = $row['foutantwoord2']; 

mysql_close($con); 
?> 
<form> 

    <p><?php echo $vraag; ?></p> 
    <input type="checkbox" name="juistantwoord" value="ok" /><?php echo $juistantwoord; ?><br /> 
    <input type="checkbox" name="foutantwoord1" value="nee1" /><?php echo $foutantwoord1; ?><br /> 
    <input type="checkbox" name="foutantwoord2" value="nee2" /><?php echo $foutantwoord2; ?><br /> 

    <input type="submit" value="Controleer je antwoord" name="controleer" /> 
</form> 
</body> 
</html> 
+1

您正在使用isset()檢查* some *變量,但不是全部。當它們還沒有設置時,你會得到這個警告 – 2013-03-09 16:54:51

+0

嘗試澄清更好的代碼,也沒有看到你的代碼中的未定義的行,例如:'$ vraag = $ _GET [「vraag」]; if可能把我們可以看到它的所有代碼(考慮使用[Pastebin](http://pastebin.com)) – 2013-03-09 17:03:38

+0

可以請你把你得到的錯誤? – 2013-03-09 19:56:02

回答

1

你應該把session_start();在文檔的begening任何輸出之前

,所以你會把它作爲:

<?php session_start(); ?> 
<!DOCTYPE html> 
<html> 
<head> 
<title>Talenquiz2</title> 
</head> 
<body> 

<?php 

if(isset($_SESSION["vraagnr"])) 
{ 
    // etc.. 
+0

已經有了 – 2013-03-09 16:53:54

+0

@Pekka웃查看我的編輯 – 2013-03-09 16:55:59

+0

但是它已經在OP的代碼中了嗎? – 2013-03-09 16:58:54

0

嘗試$_POST代替$_GET,如果窗體通過提交post ...

+0

我問過我的老師,他說它不在乎。 – 2013-03-09 17:21:59

+0

'$ _REQUEST'不關心,'$ _GET'非常在意。嘗試一下,或查看它 - http://php.net/manual/en/reserved.variables.request.php – 2013-03-09 17:30:56

+0

如果我使用它不會去下一個問題,它不會給出未知指數。你認爲它是否是一種污染? – 2013-03-09 22:38:25