tomasjur...@email.cz napsal(a):
Dobrý den

vytváříme jednoduchou web aplikaci ve které si přihlášený student může spustit 
test (např z Matematiky, ČJ, Přírodovedy). Jedná se o obyčejný HTML formulář, 
který po vyplnění a zaškrtání odpovědí student odešle na server k automatickému 
vyhodnocení.

Čas testu musí být časově omezen. Po stanovené době se musí test automaticky ukončit a odeslat na server ke zpracování .
Toto chování jsem nejprve implementoval pomocí JavaScriptu:

   1. Po spuštění testu se na klientský PC uloží cookie obsahující čas ukončení 
testu.
   2. V pravidelném časovém intervalu se kontroluje aktuální čas s časem 
uloženým v cookie. ( používá window.setInterval() )
   3. Formulář se odešle pokud je aktuální čas větší než čas v cookie.


Řešení se ukázalo jako nespolehlivé. Existuje nějaká možnost jak toto chování 
řídit na straně serveru?
Aplikace je napsaná v Jave na Spring 2.5

Na serveru se nedá ovládat, co dělá klient. Odeslat formulář z HTML klienta se 
dá jedině kliknutím
na submit tlačítko nebo z JavaScriptu. Pokud má klient JavaScript vypnutý, není 
cesta, jak
donutit formulář k odeslání.

Ale dalo by se na serveru zkontrolovat, kolik času uběhlo mezi vygenerováním 
stránky
s formulářem a přijmutím POST requestu s daty z formuláře.

Ještě mne napadlo, že pomocí
<meta http-equiv="Refresh" content="300;URL=http://neco/nekde";> v <head>
se dá donutit prohlížeč, aby po 300 sekundách načetl jinou stránku,
ale ztratí se tím data vyplněná ve formuláři.


Makub
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno             Martin Kuba
Institute of Computer Science    email: ma...@ics.muni.cz
Masaryk University             http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ     mobil: +420-603-533775
--------------------------------------------------------------


Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Odpovedet emailem