Php 测验中未定义的索引
*它说未定义的索引和5次表示错误,但如果我点击正确的,它也会说5次。 * 这个程序是一个测验,在一个问题之后重复一个问题,如果它是错误的,他说是错误的,如果它是正确的,它说是正确的Php 测验中未定义的索引,php,mysql,Php,Mysql,*它说未定义的索引和5次表示错误,但如果我点击正确的,它也会说5次。 * 这个程序是一个测验,在一个问题之后重复一个问题,如果它是错误的,他说是错误的,如果它是正确的,它说是正确的 <!DOCTYPE html> <html> <head> <title>Talenquiz2</title> </head> <body> <?php session_start(); if(isset($_SESSION[
<!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>
塔伦奎兹2
你应该把session_start()代码>在任何输出之前,在文档的开头
你可以这样说:
<?php session_start(); ?>
<!DOCTYPE html>
<html>
<head>
<title>Talenquiz2</title>
</head>
<body>
<?php
if(isset($_SESSION["vraagnr"]))
{
// etc..
塔伦奎兹2
尝试$\u POST
而不是$\u GET
,如果表单是通过POST提交的…您正在使用isset()
检查一些变量,但不是所有变量。当它们尚未设置时,您将得到警告,以更好地澄清您的代码,而且我看不到代码中未定义的行,例如:$vraag=$\u get[“vraag”]代码>,如果可能的话,把我们能看到的所有代码都放进去(考虑使用)请把你得到的错误放在第15行注意:未定义索引:vraag在E:\xampp portable\htdocs\Valdrin\Projectegenles Maart\Testqv2.php中注意:未定义索引:Foutantword1在E:\xampp portable\htdocs\Valdrin\Projectegenles Maart\Testqv2.php在第17行注意:未定义索引:Foutantword2在第18行的E:\xampp-portable\htdocs\Valdrin\projecteignles-Maart\Testqv2.php Dit是fout.Dit是fout.Dit是fout.Dit是fout.Dit是fout。它错了5次,但我错了1次。我已经试了这么多,也想找到一个正确的答案,但我什么也没找到。@Pekka웃 检查我的编辑,但是它已经在OP的代码中了?是的,但是在输出之前应该在最顶端调用session\u start()
函数,在这种情况下,输出是html标题内容<!DOCTYPE html>等。
如果我这样做,它会说:警告:mysql_fetch_array()希望参数1是resource,布尔值在第46行的E:\xampp portable\htdocs\Valdrin\projectegenles Maart\Testqv2.php中给出,并且不会显示checkbox@Valdrin这可能是一个新问题。用于找出查询失败的原因我问过我的老师,他说不在乎。$\u REQUEST
不在乎,$\u GET
非常在乎。试试看,或者查一查——如果我使用它,它不会进入下一个问题,也不会给出未索引的索引。你认为这是一种逃避吗?是的,我认为是。未定义的索引基本上意味着你引用的东西不存在。。。不要忘记,在处理这个问题时,您可以将变量的内容任意输出到页面,以供检查。