≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 网络编程 > PHP笔记

php在线考试简单示例

人气:384 时间:2020-08-10

这篇文章主要为大家详细介绍了php在线考试简单示例,具有一定的参考价值,可以用来参考一下。

对php在线考试简单示例感兴趣的小伙伴,下面一起跟随四海网的小编巴闭妹来看看吧!

/**
 * 
 * @param 
 * @arrange (512.笔记) www.q1010.com
 **/

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

本文来自:http://www.q1010.com/173/11048-0.html

注:关于php在线考试简单示例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:

您可能感兴趣的文章

上一篇:php时间差转化为xx天xx小时xx分xx秒简单示例
下一篇:php数据库截图也简单示例
热门文章
  • PHP 写入WRITE编码为UTF8的文件示例
  • PHP 中文字符串截取函数示例:支持gb2312,gbk,big
  • PHP 简单留言板的制作示例
  • 解决Fatal error: Call to undefined function mb_convert_encoding() in错误问题
  • PHP语言基础(标记、注释、变量、数组、常量、函数)示例
  • php 生成迅雷链接的简单示例
  • php 获取短网址的实现方法
  • PHP 通用分页类的简单示例
  • PHP 使用文件方式导入导出整个MYSQL数据库的实现方法
  • php 获取MYSQL错误的简单示例
  • 最新文章
    • 解决PHP使用redis实现统计缓存MySQL压力的问题
    • php 简单的上传进度条的简单示例
    • php 给html中引用的js和css路径打上版本号的实现方法
    • php 实现计算年龄精准到年月日的实例
    • php+ajax无刷新分页的简单示例
    • 解决php+ajax无刷新上传图片的问题
    • 解决PHP生成HTML静态页面的问题
    • 解决PHP使用uniqid函数生成唯一ID的问题
    • 解决PHP防刷票的一些问题
    • 微信access_token的获取开发的实现方法

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。