
<?php |
set_include_path('.' . PATH_SEPARATOR . './admin'. PATH_SEPARATOR . get_include_path()); |
include("global.php"); |
$threadid = intval($_REQUEST[threadid]); |
if($_POST["action"]=="dotest"){ |
$_POST[radio] = $_POST[radio] ? $_POST[radio] : array(); |
$_POST[checkbox] = $_POST[checkbox] ? $_POST[checkbox] : array(); |
|
//取得单选和多选分值 |
$getsetmark = $db->query_first("SELECT radio,checkbox FROM ".$db_prefix."setmark"); |
|
//缓存所有正确答案 |
$answers = $db->query("SELECT id,title,choicetype,answer FROM ".$db_prefix."title WHERE 1"); |
$answer_array = array(); |
$titles = array(); |
$error = array(); |
$tmark = 0; |
while($row = $db->fetch_array($answers)){ |
$answer_array[$row[id]] = $row[answer]; |
$titles[$row[id]] = $row[title]; |
if($row[choicetype]=="radio"){ |
$tmark += $getsetmark[radio]; |
}elseif($row[choicetype]=="checkbox"){ |
$tmark += $getsetmark[checkbox]; |
} |
} |
$mark = 0; |
foreach($_POST[radio] as $titleid=>$choice){ |
|
if($choice == $answer_array[$titleid]){ |
$mark += $getsetmark[radio]; |
}else{ |
$error[] = array($titleid,$choice,$answer_array[$titleid]); |
} |
|
|
} |
|
foreach($_POST[checkbox] as $titleid=>$choice){ |
|
$c_answers = explode(",",$answer_array[$titleid]); |
$flag = false; |
|
foreach($c_answers as $answer){ |
if(!in_array($answer,$choice)){ |
$flag = true; |
} |
} |
foreach($choice as $answer){ |
if(!in_array($answer,$c_answers)){ |
$flag = true; |
} |
} |
|
if($flag){ |
$error[] = array($titleid,implode(",",$choice),$answer_array[$titleid]); |
continue; |
} |
$mark += $getsetmark[checkbox]; |
|
} |
|
|
|
|
|
$msg = "本次考试总分{$tmark}分\\n你的得分{$mark}分\\n"; |
if($error){ |
$msg .= "以下题目你回答错误:\\n"; |
foreach($error as $v){ |
$msg .= "{$titles[$v[0]]}\\n你的答案:{$v[1]}\\n正确答案:{$v[2]}\\n\\n"; |
} |
} |
echo "<script>alert('$msg');document.location.href='index.php'</script>"; |
exit; |
} |
if(!$threadid){ |
echo "参数错误"; |
echo '<meta http-equiv="refresh" content="2; url=index.php">'; |
exit; |
} |
//考试名称 |
$threads = $db->query_first("SELECT name FROM ".$db_prefix."thread WHERE id=$threadid"); |
$threadtitle = $threads[name]; |
//题目表单 |
$conditions = $threadid ? "threadid='$threadid'" : 1; |
$titles = $db->query("SELECT * FROM ".$db_prefix."title WHERE $conditions ORDER BY id ASC"); |
$titlelist = false; |
$int = 0; |
while($title = $db->fetch_array($titles)){ |
$int++; |
$choices = false; |
$tests = $db->query("SELECT * FROM ".$db_prefix."choice WHERE extends=$title[id] ORDER BY id ASC"); |
$i=0; |
while($test=$db->fetch_array($tests)) { |
$i++; |
$checked = $test["IsDefault"] ? "checked" : false; |
|
if($title[choicetype]=="radio"){ |
$choices .= "<input name=\"radio[$title[id]]\" type=\"radio\" value=\"$test[choice]\" $checked check=\"^0$\" warning=\"$title[title]\"> $test[choice]"; // |
}else{ |
$choices .= "<input name=\"checkbox[$title[id]][]\" type=\"checkbox\" value=\"$test[choice]\" $checked check=\"^0{1,}$\" warning=\"$title[title]\"> $test[choice]";// |
} |
} |
eval("\$titlelist .= \"".gettemplate("test_title_list")."\";"); |
} |
eval("\$header = \"".gettemplate("test_header")."\";"); |
eval("\$footer = \"".gettemplate("test_footer")."\";"); |
eval("dooutput(\"".gettemplate("test_test")."\");"); |
?> |




初级程序员
by: 大鹏 发表于:2014-05-30 11:12:48 顶(2) | 踩(1) 回复
谢谢分享!
回复评论