关于php做考试系统的信息

本文目录一览:

假设我用PHP做了一个在线考试系统,有一个学生正常登录了,然后他通过在浏览器地址栏直接输入某个网页的

可以在打开这个系统的时候系统生成一个数组存在session中,当有人登录或者未登陆直接访问入口文件以外的文件时,做个判断,看当前登录或者未登录的人是否在session中.如果存在就是拥有访问权限,否则不可以. session中可以存储的是拥有权限用户的名字,分组或者ip等等.

基于上述的判断,也可以在入口文件被登录时生成一个常量,在直接访问入口文件以外的文件时,判断这个常量值,以便控制用户是否是经由入口文件访问其他文件的!

php考试系统怎么去做?

我只说简单的吧 首先设计数据表questions,questions表包括三个字段,id,question,answer 分别是,题目ID,题目,题目答案 然后在前台 ?php $num=array(); //保存题目数的数组 for($i=0;$i$question_num;$i++) //$question_num是要读取的题目数量 { $b=mt_rand(0,$max_questionID); //这里$max_questionID是说你的数据表中一共几道题。 while(in_array($b,$num)) { $b=mt_rand(0,$max_questionID); //这个循环是为了防止生成重复的题目号 } $num[]=$b; } ? 这样我们就得到了一个保存着要读取的题目号的数组; 然后就可以连接数据库进行读取了 ?php mysql_connect(“”,””,””); mysql_select_db(‘db’); mysql_query(‘SET NAMES gb2312′); foreach($num as $value) { $string.=$value.’,’; } $string=substr($string,0,-1); $sql=”select question,answer from questions where id in ($string)”; $r=mysql_query($sql); $answer=array(); $i=0; while($row=mysql_fetch_array($r)) { echo $row[‘question’].’br’; $answer[$i][]=$row[‘answer’]; //把答案保存进一个二维数组 $i++; } $fname=mt_rand(0,1000); $fp=fopen($fname,’w’); fwrite($fp,serialize($answer)); //把序列化后的答案写入一个随机生成的文件中; fclose($fp); ? 添加题目就不用我说了吧?插入数据呗。。。很简单,不啰嗦了 然后是得分是么? 前台设计的时候要注意,单选框的名字要是一个数组才行,input type=”radio” name=”answer[]” value=”a”/类似这样的,并且创建一个隐藏域input type=”hidden” value=”? echo $fname ?” name=”fname” /这是为了能够获得此次考试对应的答案 后台就可以通过这个数组来获取回答者的答案并且进行判断了 ?php $answer=$_POST[‘answer’]; $fname=$_POST[‘fname’]; $fp1=fopen($fname,’r’); $content=fread($fp); fclose($fp1); $rightanswer=unserialize($content); 剩下得就是判断提交的答案是否与正确答案相同了,然后加分数,不用啰嗦了吧? ?

求采纳

php考试系统怎么去做

一般在线考试系统,会事先将题库和题型都设置好,并设置考试时间。在没有到达考试时间时,考生登录系统进入等待页面,到达考试时间后用户进入考场,显示考试试题,考生作答完成提交自动阅卷生成成绩。

试题只在考试时生成试卷,提交答案时操作数据库,这个应当不存在什么压力不压力的。但是考虑将试题输出到客户端缓存,这个是有必要的。假若为每个用户生成的试卷都不相同时,则可以试卷存储到cookie(Cookie是保存在客户端的,而且可以设置过期时间,考试结束提交试卷后清空),进入考场后从Cookie读取试卷而无需再次从数据库生成下载,即使中途断电,试题也无需再次生成。

至于有的朋友说将试题输出到JS,这个是不可行的,因为JS只能在当前页面保存,刷新操作或者跳转页面都会丢失,处理起来也麻烦,而且还很有可能没考试考题都泄露干净了。

用php+mysql做一个题库系统,随机抽取五百题左右生成考试卷,最有效率的做法是什么?

php里面有array_rand函数,你要是一道题一道题的读出来,或许也可以尝试一下。但是要是一下子都读出来,即便这个函数效率可以的话,随机取出id数组,查询 “where id in 数组” 就不如直接在数据库里随机抽取记录。\x0d\x0a如何从数据表里随机抽取记录呢,想想办法还是有一些,就是不知道效率如何。有的是说用max_id*rand(),那一条一条抽取还是可以的。怎么批量随机抽取呢,可以试着排序,然后选取前500题,排序可以想办法用一些函数(选取一些执行效率高的),如何md5,sha1,这种。如果为了使结果更具有随机性,可以把字段值再与一个随机数运算一下。仅供参考。\x0d\x0a========================\x0d\x0a我想你还是用array_rand随机抽500个id存到数组,然后遍历数组吧。这样也避免了题目重复。在数据库里如果一次一条记录随机抽取,要考虑碰巧重复的问题。批量选取你就按上面我说的试试。

原创文章,作者:FUBYH,如若转载,请注明出处:https://www.506064.com/n/316531.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
FUBYH的头像FUBYH
上一篇 2025-01-09 12:14
下一篇 2025-01-09 12:14

相关推荐

  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • Deepin系统分区设置教程

    本教程将会详细介绍Deepin系统如何进行分区设置,分享多种方式让您了解如何规划您的硬盘。 一、分区的基本知识 在进行Deepin系统分区设置之前,我们需要了解一些基本分区概念。 …

    编程 2025-04-29
  • 如何在树莓派上安装Windows 7系统?

    随着树莓派的普及,许多用户想在树莓派上安装Windows 7操作系统。 一、准备工作 在开始之前,需要准备以下材料: 1.树莓派4B一台; 2.一张8GB以上的SD卡; 3.下载并…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29
  • PHP怎么接币

    想要在自己的网站或应用中接受比特币等加密货币的支付,就需要对该加密货币拥有一定的了解,并使用对应的API进行开发。本文将从多个方面详细阐述如何使用PHP接受加密货币的支付。 一、环…

    编程 2025-04-29
  • Java 监控接口返回信息报错信息怎么处理

    本文将从多个方面对 Java 监控接口返回信息报错信息的处理方法进行详细的阐述,其中包括如何捕获异常、如何使用日志输出错误信息、以及如何通过异常处理机制解决报错问题等等。以下是详细…

    编程 2025-04-29
  • 分销系统开发搭建

    本文主要介绍如何搭建一套完整的分销系统,从需求分析、技术选型、开发、部署等方面进行说明。 一、需求分析 在进行分销系统的开发之前,我们首先需要对系统进行需求分析。一般来说,分销系统…

    编程 2025-04-29
  • 使用Python爬虫获取电影信息的实现方法

    本文将介绍如何使用Python编写爬虫程序,来获取和处理电影数据。需要了解基本的Python编程语言知识,并使用BeautifulSoup库和Requests库进行爬取。 一、准备…

    编程 2025-04-28
  • 云盘开源系统哪个好?

    本文将会介绍几种目前主流的云盘开源系统,从不同方面对它们做出分析比较,以此来确定哪个云盘开源系统是最适合您的。 一、Seafile Seafile是一款非常出色的云盘开源系统,它的…

    编程 2025-04-28
  • EulerOS V2R7:企业级开发首选系统

    本文将从多个方面为您介绍EulerOS V2R7,包括系统简介、安全性、易用性、灵活性和应用场景等。 一、系统简介 EulerOS V2R7是一个华为公司开发的企业级操作系统,该系…

    编程 2025-04-28

发表回复

登录后才能评论