用于在线考试系统的计时器,用于存储每个单独部分的时间
Timer for online examination system to stores the time for each individual section
我正在开发一个在线考试,我需要在整个考试期间显示一个倒计时计时器/时钟。此外,在显示最终结果的同时,还应显示解决每个单独问题所花费的时间以及测试所花费的总时间。
实现此功能的最佳方法是什么??
<?php
$countfile = "counter.txt";
// location of site statistics.
$statsfile = "stats.txt";
// checks whether the file exist, if not then server will create it.
if (file_exists($countfile)) {
// open the counter hit file.
$fp = fopen($countfile, "r");
// reads the counter hit file and gets the size of the file.
$output = fread($fp, filesize($countfile));
// close the counter hit file.
fclose($fp);
// get the integer value of the variable.
$count = intval($output);
}
// if file is doesn't exist, the server will create the counter hit file and gives a value of zero.
else {
$count = 0;
}
// showcount function starts here.
function ShowCount() {
// declares the global variables.
global $ShowCount, $countfile, $statsfile, $count;
// get the current month.
$month = date('m');
// get the current day.
$day = date('d');
// get the current year.
$year = date('Y');
// get the current hour.
$hour = date('G');
// get the current minute.
$minute = date('i');
// get the current second.
$second = date('s');
// this is the date used in the stats file
$date = "$month/$day/$year $hour:$minute:$second";
// this is the remote IP address of the user.
$remoteip = getenv("REMOTE_ADDR");
// some of the browser details of the user.
$otherinfo = getenv("HTTP_USER_AGENT");
// retrieve the last URL where the user visited before visiting the current file.
$ref = getenv("HTTP_REFERER");
// open the statistics file.
$fp = fopen($statsfile, "a");
// put the given data into the statistics file.
fputs($fp, "Remote Address: $remoteip | ");
fputs($fp, "Information: $otherinfo | ");
fputs($fp, "Date: $date | ");
fputs($fp, "Referer: $ref'n");
// close the statistics file.
fclose($fp);
// adds 1 count to the counter hit file.
$count++;
// open the counter hit file.
$fp = fopen($countfile, "w");
// write at the counter hit file.
// if the value is 34, it will be changed to 35.
fwrite($fp, $count);
// close the counter hit file.
fclose($fp);
// showcount variable is equal to count variable.
$ShowCount = $count;
// return the value of the count variable into showcount variable.
return $ShowCount;
}
// display the value in the counter hits file.
echo showcount(), " visits";
?>
我正在使用这个脚本来跟踪访问者的统计数据和访问时间。。。它运行良好。但我无法跟踪每个考试类别中单个问题的时间(每个考试有多个类别,有多个问题)。需要帮助
使用会话,您需要跟踪用户在部分的时间何时到期
<?php
// Upon starting the section
session_start();
$_SESSION['TIMER'] = time() + 600; // Give the user Ten minutes
?>
不要在页面重新加载时这样做,因为他们可以简单地刷新页面并重置计时器
在页面上,使用Javascript显示时钟:
<script type="text/javascript">
var TimeLimit = new Date('<?php echo date('r', $_SESSION['TIMER']) ?>');
</script>
然后,您可以使用变量"TimeLimit"来显示倒计时
<script type="text/javascript">
function countdownto() {
var date = Math.round((TimeLimit-new Date())/1000);
var hours = Math.floor(date/3600);
date = date - (hours*3600);
var mins = Math.floor(date/60);
date = date - (mins*60);
var secs = date;
if (hours<10) hours = '0'+hours;
if (mins<10) mins = '0'+mins;
if (secs<10) secs = '0'+secs;
document.body.innerHTML = hours+':'+mins+':'+secs;
setTimeout("countdownto()",1000);
}
countdownto();
</script>
您可以通过来实现这一点
- 当学生开始考试时,将StartTime存储在某个存储/数据库中
- 要显示倒计时,您可以在客户端使用javascript。编写一个需要两次的函数,第一次是服务器时间,第二次是StartTime。使用这些,您可以了解候选人解决问题的时间,并由此了解剩余时间。使用javascript的setInterval,您可以显示滴答作响的手表
- 对于解决问题所花费的时间,存储问题对候选人可见的持续时间
- 添加单个问题所花费的时间,并显示总时间
我想这就是你想要的答案。
相关文章:
- 时间格式不适用于dateTimePicker
- 用于查找基于时间的事件的最佳Javascript算法
- document.write用于指定时间
- 用于显示服务器上的 javascript 时间的脚本不起作用
- Javascript:用于 vs jQuery.each() 与时间延迟
- 用于显示解析时间 c# 的计时器
- 引导日期时间选取器不适用于动态字段
- 用于检查时间格式的 JavaScript 正则表达式
- 用于确定时间的正则表达式
- 用于查找重叠事件/时间的算法
- 在 VideoJS 中添加事件侦听器,用于在运行时获取视频持续时间
- RegEx 用于在 JavaScript 中进行灵活的时间验证
- 将时间戳发布到本地商店的 OnChange 事件 - 适用于 7 个用户的团队
- 磁头.js - 何时用于提高性能(减少加载时间)
- 函数类似$.datepicker.formatDate,用于格式化时间
- 用于验证时间的正则表达式
- slideToggle equivalanet用于加载页面的时间
- 用于获取javascript、Date()或new Date()中的当前时间
- 谷歌分析是否有一个“;心跳;用于长时间运行的web应用程序的功能
- 用于时间尺度数据的Web绘图工具