セッションについて教えてください。
ラジオボタンを使った選択式の小テストのプログラムを作っています。テストのページを複数にしたいのですが、どのようにセッション関数を使えば良いのか分かりません。
下記のプログラムですと、1ページ目に答えた内容が2ページ目で上書きされてしまうようです。
どうぞよろしくお願いいたします。
1~2ページ目(テストのページ)
<?
$QA[]=array(
"Q"=>array("id"=>"q1","text"=>"質問A")
,"A"=>array(
array("key"=>1,"text"=>"回答A-1")
,array("key"=>2,"text"=>"回答A-2")
,array("key"=>3,"text"=>"回答A-3")
,array("key"=>4,"text"=>"回答A-4")
)
);
$QA[]=array(
"Q"=>array("id"=>"q2","text"=>"質問B")
,"A"=>array(
array("key"=>1,"text"=>"回答B-1")
,array("key"=>2,"text"=>"回答B-2")
,array("key"=>3,"text"=>"回答B-3")
,array("key"=>4,"text"=>"回答B-4")
)
);
shuffle($QA);
$q_no=1;
foreach($QA as $arr1){
shuffle($arr1["A"]);
print "問".$q_no." ".$arr1["Q"]["text"]."<br>\n";
foreach($arr1["A"] as $arr2){
$id=$arr1["Q"]["id"]."_".$arr2["key"];
print "<INPUT type=\"radio\" id=\"".$id."\" name=\"".$arr1["Q"]["id"]."\" value=\"".$arr2["key"]."\"><label for=\"".$id."\">".$arr2["text"]."</label><br>\n";
}
if($q_no >= 2){
break;
}
$q_no++;
}
?>
3ページ目(採点ページ)
<?php
$tokuten = 0;
$seikaisuu = 0;
$answer = $_POST["q1"];
if($answer == "1"){
$tokuten = $tokuten+5;
$seikaisuu = +1;
}
$answer = $_POST["q2"];
if($answer == "1"){
$tokuten = $tokuten+5;
$seikaisuu = $seikaisuu+1;
}
$answer = $_POST["q3"];
if($answer == "1"){
$tokuten = $tokuten+5;
$seikaisuu = $seikaisuu+1;
}
$answer = $_POST["q4"];
if($answer == "1"){
$tokuten = $tokuten+5;
$seikaisuu = $seikaisuu+1;
}
print "正解数 " . $seikaisuu . "問";
print "<br>";
print "合計点 " . $tokuten . "点";
?>
お礼
スピーディな回答、ありがとうございます。 やはり実力者ぞろい。 映像ソフトが欲しい、、、、、 無理ですけど。