0

私は現在、ユーザーの回答値をデータベースに保存するオンラインクイズシステムに取り組んでいますが、質問ではなくマークのみを保存します.クイズページでは、phpのランダム関数を使用して10の質問から1つの質問が選択されます.ユーザーログイン用のセッションを作成しています毎回、変数をセッション変数に保存します..このWeb世界に慣れていないので助けてください..

次の問題に直面しています:-

1-データベースに回答を保存しようとするたびに、それは1回インクリメントされ、ページを更新すると再び1回インクリメントされ、これは私が更新するたびに..これは恥ずべきことですこれを回避してマーク列を増やす方法はありますかユーザーは一度だけ。

2. 2 つ目は、クイズ ページで次の質問を選択する方法です。つまり、ページを更新せずに毎回 1/10 の質問を 1 つ選択し、ランダム関数を使用せずに php を使用してクイズ システムで行うように、他の質問を同時に非表示にします。

私のコードは-ページで4つの質問を使用しています-

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

1 に答える 1

2

開始するための小さなヒントとして:

使用する

if(isset($_POST['q1']) && $_POST['q1']=='A'){
  ...
}

isset($_POST['q1'])が設定されているかどうかを確認するだけ$_POST['q1']です。

于 2013-03-01T15:53:51.417 に答える