使用php和sql会话的在线问答系统
我目前正在开发一个在线测验系统,该系统将用户答案的值存储在数据库中,但只存储分数,而不存储问题。在测验页面上,使用php的随机函数从10个问题中选择一个问题。我正在为用户每次登录创建会话,并将变量存储在会话变量中。作为我的新手,请提供帮助这个网络世界 我面临以下问题:- 1-现在,每当我尝试在数据库中存储答案时,它会增加一次,如果刷新页面,它会再次增加一次,这可能是我刷新的次数。这是不光彩的。是否有任何方法可以避免这种情况,并只增加一次用户的分数 2.第二件事是如何在测验页面中选择下一个问题,即每次选择一个1/10的问题而不刷新页面,同时隐藏其他问题,就像我们在使用php的测验系统中使用的那样,而不使用随机函数 我的代码是——在第页使用4个问题-使用php和sql会话的在线问答系统,php,mysql,session,random,Php,Mysql,Session,Random,我目前正在开发一个在线测验系统,该系统将用户答案的值存储在数据库中,但只存储分数,而不存储问题。在测验页面上,使用php的随机函数从10个问题中选择一个问题。我正在为用户每次登录创建会话,并将变量存储在会话变量中。作为我的新手,请提供帮助这个网络世界 我面临以下问题:- 1-现在,每当我尝试在数据库中存储答案时,它会增加一次,如果刷新页面,它会再次增加一次,这可能是我刷新的次数。这是不光彩的。是否有任何方法可以避免这种情况,并只增加一次用户的分数 2.第二件事是如何在测验页面中选择下一个问题,即
<?php
session_start();
$username=$_SESSION['username'];
$total=$_SESSION['total'];
$q1=isset($_POST['q1']);
$q2=isset($_POST['q2']);
$q3=isset($_POST['q3']);
$q4=isset($_POST['q4']);
$q5=isset($_POST['q5']);
$full=30;
echo 'Welcome '.$username;
echo $total;
function quiz(){
$set=rand(1,5);
$total=0;
echo $set;
switch($set)
{
case 1:
echo '<form action="quiz.php" method="post" align="center">
<table align="center">
<tr><label name="question" id="ques"><h1 >ISM stands for?</h1></label><tr>
<tr>
<td align="right"><input type="radio" name="q1" value="A"></td>
<td>Indian School Of Mines</input><br></td>
</tr>
<tr>
<td align="right"><input type="radio" name="q1" value="B"></td>
<td >Indian Science Of Mines</input><br></td>
</tr>
<tr>
<td align="right"><input type="radio" name="q1" value="C"></td>
<td>Indian School Of Mineral</input><br></td>
</tr>
<tr >
<td align="right"><input type="radio" name="q1" value="D"></td>
<td>Indian School Of Machines</input><br></td>
</tr>
<tr >
<td align="center"><br><input type="submit" name="snext" value="Save/Next"><br></td>
</tr>
</form>';
if(isset($_POST['q1'])=='A')
{
$total =$total + 1;
include ('process.php');
}
else{
}
break;
case 2:
echo '<form action="quiz.php" method="post" align="center" id="">
<table align="center">
<tr><label name="question" id="ques"><h1 >HTML stands for?</h1></label><tr>
<tr>
<td align="right"><input type="radio" name="q2" value="A"></td>
<td>Indian School Of Mines</input><br></td>
</tr>
<tr>
<td align="right"><input type="radio" name="q2" value="B"></td>
<td >Indian Science Of Mines</input><br></td>
</tr>
<tr>
<td align="right"><input type="radio" name="q2" value="C"></td>
<td>Indian School Of Mineral</input><br></td>
</tr>
<tr >
<td align="right"><input type="radio" name="q2" value="D"></td>
<td>Indian School Of Machines</input><br></td>
</tr>
<tr >
<td align="center"><br><input type="submit" name="snext" value="Save/Next"><br></td>
</tr>
</form>';
if(isset($_POST['q2'])=='C')
{
$total =$total + 1;
include ('process.php');
}
else{
}
break;
case 3:
echo '<form action="quiz.php" method="post" align="center">
<table align="center">
<tr><label name="question" id="ques"><h1 >CSS stands for?</h1></label><tr>
<tr>
<td align="right"><input type="radio" name="q3" value="A"></td>
<td>Indian School Of Mines</input><br></td>
</tr>
<tr>
<td align="right"><input type="radio" name="q3" value="B"></td>
<td >Indian Science Of Mines</input><br></td>
</tr>
<tr>
<td align="right"><input type="radio" name="q3" value="C"></td>
<td>Indian School Of Mineral</input><br></td>
</tr>
<tr >
<td align="right"><input type="radio" name="q3" value="D"></td>
<td>Indian School Of Machines</input><br></td>
</tr>
<tr >
<td align="center"><br><input type="submit" name="snext" value="Save/Next"><br></td>
</tr>
</form>';
if(isset($_POST['q3'])=='D')
{
$total =$total + 1;
include ('process.php');
}
else{
}
break;
case 4:
echo '<form action="quiz.php" method="post" align="center">
<table align="center">
<tr><label name="question" id="ques"><h1 >PHP stands for?</h1></label><tr>
<tr>
<td align="right"><input type="radio" name="q4" value="A"></td>
<td>Indian School Of Mines</input><br></td>
</tr>
<tr>
<td align="right"><input type="radio" name="q4" value="B"></td>
<td >Indian Science Of Mines</input><br></td>
</tr>
<tr>
<td align="right"><input type="radio" name="q4" value="C"></td>
<td>Indian School Of Mineral</input><br></td>
</tr>
<tr >
<td align="right"><input type="radio" name="q4" value="D"></td>
<td>Indian School Of Machines</input><br></td>
</tr>
<tr >
<td align="center"><br><input type="submit" name="snext" value="Save/Next"><br></td>
</tr>
</table>
</form>';
if(isset($_POST['q4'])=='D')
{
$total =$total + 1;
include ('process.php');
}
else{
}
break;
default:
Echo "This is quiz application";
break;
}
}
?>
<html>
<head>
</head>
<body>
<?php echo quiz(); ?>
</body>
</html>
作为一个开始的小提示: 使用
isset($\u POST['q1'])
只需检查$\u POST['q1']
是否已设置。您确实了解isset($\u POST[''])
返回的是布尔值,而不是值?如果您尝试在这里构建,您将遇到越来越多的问题。我建议暂时搁置这个项目,学习一下MVC和数据库设计。这种学习可能会让你在短期内放慢速度,但从长远来看,它会为你节省大量的时间/精力/挫折。只是出于好奇:你创造的“小测验”是怎么回事?每天都有大量的问题来自于试图在这里创建测验应用程序的人们。这有什么意思?你被所有的测验弄糊涂了?不,我被所有的普-无所谓的测验弄糊涂了。
if(isset($_POST['q1']) && $_POST['q1']=='A'){
...
}