2014-01-26 27 views
-1

我创建了一个在线考试..我有我的计时器30分钟它会自动提交考试,但每次页面刷新或重新加载时间在30分钟恢复有什么办法来预防它?在此先感谢是否可以在PHP中禁用刷新按钮?

<?php 
session_start(); 
if (isset($_SESSION['targetdate'])) { 
    // session variable_exists, use that 
    $targetDate = $_SESSION['targetdate']; 
} else { 
    // No session variable, red from mysql 
    $result=mysql_query("select * from test where testid='29' LIMIT 1"); 
    $time=mysql_fetch_array($result); 
    $dateFormat = "d F Y -- g:i a"; 
    $targetDate = time() + ($time['duration']*60); 
    $_SESSION['targetdate'] = $targetDate; 

} 

$actualDate = time(); 
$secondsDiff = $targetDate - $actualDate; 
$remainingDay  = floor($secondsDiff/60/60/24); 
$remainingHour = floor(($secondsDiff-($remainingDay*60*60*24))/60/60); 
$remainingMinutes = floor(($secondsDiff-($remainingDay*60*60*24)-   ($remainingHour*60*60))/60); 
$remainingSeconds = floor(($secondsDiff-($remainingDay*60*60*24)- ($remainingHour*60*60))-($remainingMinutes*60)); 
$actualDateDisplay = date($dateFormat,$actualDate); 
$targetDateDisplay = date($dateFormat,$targetDate); 

?> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
<script type="text/javascript"> 
var days = <?php echo $remainingDay; ?> 
var hours = <?php echo $remainingHour; ?> 
var minutes = <?php echo $remainingMinutes; ?> 
var seconds = <?php echo $remainingSeconds; ?> 
function setCountDown() 
{ 
seconds--; 
if (seconds < 0){ 
    minutes--; 
    seconds = 59 
} 
if (minutes < 0){ 
    hours--; 
    minutes = 59 
} 
    if (hours < 0){ 
    hours = 23 
} 
    document.getElementById("remain").innerHTML = " "+hours+" hr "+minutes+" min "+seconds+" sec"; 
    SD=window.setTimeout("setCountDown()", 1000); 
    if (minutes == '00' && seconds == '00') { seconds = "00"; window.clearTimeout(SD); 
    window.location = "result.php" 
} 

    } 
</script> 

</head> 
<body onLoad="setCountDown();"> 
<div id="remain"><?php echo "$remainingHour hours, $remainingMinutes minutes,  $remainingSeconds seconds";?></div> 

我只是复制该代码我想限制测验定时器仅30分钟,什么是$ _SESSION [“targetdate”]?

+0

在浏览器更新你有什么样的代码?我只是无法看到具有该描述的图片。 –

+1

可能重复的[如何使倒计时器不刷新页面重置](http://stackoverflow.com/questions/11272190/how-to-make-countdown-timer-to-not-reset-on-page-刷新) –

+0

是的先生,但我不明白$ _SESSION目标日期和测试数据库' – Willingtolearn

回答

0

不,这是不可能的。 PHP是一种服务器端语言,对客户端没有任何影响。

即使有可能,这样做也只会让用户恼火。当他们按下刷新按钮,他们期望页面刷新

+0

那么有没有其他可行的方法来让计时器即使重新加载或刷新也不重置时间? – Willingtolearn

+0

我的意思是浏览器的刷新按钮 – Willingtolearn