Roman Koff писал(а):А может можно просто скриптами както решить? Надо чтобы на любом броузере работало ...
Всё, что бы ты ни сделал при помощи клиентских скриптов (JavaScript, VBScript), я в той же Опере открою и изменю так, как мне надо.
Как вариант, действительно сделать таймер на JS, НО! при создании страницы теста серверным скриптом создавать сессию / переменную в БД / что-то ещё, где сохранять текущее время и ид сессии. При получении результатов сравнивать время, и если оно сильно не укладывается в отведённые границы (+/-5% можно оставить на погрешность, время отправки и т.п.) - выдавать сообщение о невалидности результата.
Сами таймеры гуглятся за несколько секунд.
Тест запихивается в form с каким-то id. Потом в таймере по достижении нуля делается form.submit.
- Код: Выделить всё
<html>
<TITLE>Примеры скриптов на языке JavaScript, Таймер (Timer)</title>
<head>
<script>
startday = new Date();
clockStart = startday.getTime();
function initStopwatch()
{
var myTime = new Date();
var timeNow = myTime.getTime();
var timeDiff = timeNow - clockStart;
this.diffSecs = timeDiff/1000;
return(this.diffSecs);
}
function getSecs()
{
var mySecs = initStopwatch();
var mySecs1 = ""+mySecs;
mySecs1= mySecs1.substring(0,mySecs1.indexOf(".")) + " с";
document.forms[0].timespent.value = mySecs1
window.setTimeout('getSecs()',1000);
}
</script>
</head>
<body onLoad="window.setTimeout('getSecs()',1)"
bgcolor=#E5E5E5 topmargin=10 leftmargin=10 rightmargin=10 bottommargin=10 marginheight=10 marginwidth=10 style="scrollbar-base-color: rgb(220,227,226)">
<CENTER><font size=+1>Таймер</font><hr></CENTER>
<CENTER><form>
Вы пробыли на этой странице уже
<input size=9 name=timespent>
</form>
</body>
</html>