2014-01-26 22 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