2011-08-09 4 views
3

私は教育機関のオンライン試験サイトを作成しています。タイムアトリビュートは評価ごとに設定することができ、ユーザが試験を開始すると、サーバに新しいタイムスタンプが作成されます。問題は、学校のコンピュータが頻繁にロックされ、学生が再起動して試験時間を失うことです。タイムスタンプを動的に変更する - 提案はありますか?

私はクッキーとしてタイマーを保存することができましたが、それは簡単に損なわれる可能性があることを知りました。助言がありますか?ありがとう。

+1

私はそれぞれの試験の結果に抗議し、その間に私はロックアップコンピュータを使用することになりました。 – Mchl

+0

ハハ。私のせいじゃない。コンピュータは州政府(学生ラップトップ)によって管理されています。 D: –

+0

あなたのせいだと言っているわけではありません。私はそのシステムに何か問題があると言っています。 – Mchl

答えて

1

ユーザーにリンクされているデータベースにタイムスタンプを保存することができます(試験をしているとログインしていると思われます)。オンラインであるかどうかを確認するために数秒ごとにajaxコールを実行します。

このajaxチェックでは、データベースが最後にオンラインになったことを示す新しいタイムスタンプでデータベースを更新できるため、コンピュータがロックアップして再起動する必要がある場合、失われた時間がわかります。

+2

そして私は賢い学生として、画面上で質問をしながら、私のWiFiをオフ/イーサネットケーブルを差し替えることができます。 – Mchl

+0

うーん、あなたは良い点を持っている...私は簡単に無効になっているJavaScriptを含まないものを修正するために何も考えることはできません。 – Kokos

0

あなたは

$cookie = md5($student_name . $test_start_timestamp . $computer_ip); 

のようなクッキーに保管し、同様にデータベース内のすべての必要な情報を格納するためにユニークなハッシュを生成できます(コンピュータが再起動されている場合)

INSERT INTO examination 
SET student_hash = '$cookie', 
test_start = '$test_start_timestamp', 
computer_ip = '$computer_ip' 

以降を、あなたはデータベースからすべての情報を得ることができます:

SELECT * FROM examination 
WHERE student_hash = '$cookie' 

このようにして、

+0

Hmmm ...私はこれのセキュリティについて少し心配しています。すべてのコンピュータが単一のIPを介して接続され、クッキーは簡単に偽造される可能性があります。 –

+0

@TastyMuffins内部IPを使用できませんか? – Teneff

+0

Nup。各教室には独自のルータ - >中央ルータがあります( –

0

これは時には難しいかもしれないが、あなたのジレンマに対する唯一の本当に信頼できる解決策は、信頼性の高いネットワークです。

しかし、クライアントの状態を確認する別の通信媒体や経路については何がありますか?ドメインコントローラがLAN上のクライアントを認識できることを確認できますか? PCが存在していてもWebクライアントが存在しない場合は、ユーザーが管理する可能性が高くなります。何か(ドメインコントローラ、他のネットワークの場所?)は、ネットワークからのクライアントの出現または消滅を記録することができますか?

何らかの方法で乱用する可能性があります。唯一の真の保証は、人間の頻繁な監視と再起動を経験したユーザから来ると思います。

関連する問題