用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - php代码库

在线考试系统

2016-09-01 作者: 云代码会员举报

[php]代码库

<?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")."\");");
 
?>


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...