ストア(time()
機能から)ページ要求の時間を参照してください。差が30より大きい場合は、時間がかかりすぎる。
擬似コード:
その後
<?php
session_start();
$_SESSION['question_start'] = time();
echo "Question: How long is a piece of string?";
...
?>
、これを実行している、別のそのページのポストを持っている:もちろん
<?php
session_start();
$time = time() - $_SESSION['question_start'];
if($time > 30)
{
// fail!
}
...
?>
、ページへのジャンプは、自動になりたい場合は、することができます他の答えのJavaScriptメソッドのいずれかと一緒に上記のメソッドを使用してください。ただし、JavaScriptだけで無効にすることができますので、JavaScriptは時間制限内でユーザーが質問を解決したことを全く保証していません。
個人的には、ページリダイレクトを使用せず、代わりにAjaxを使用してインタラクティブなインターフェースを提供することをお勧めします。基本的にはいつものようにsetTimeout
コールを使用しますが、完了するとPHPで書かれたチェックスクリプトに対してAjaxリクエストが実行されます。そのスクリプトは、上記のセッションタイミングロジックを実装します。時間が間違っていれば、スクリプトは正しいスコアを出してからスコアを上げ、次の質問に応答します。これはページに表示されます。時間が長すぎると、次の質問が返されますが、時間がかかりすぎるというメッセージが返されます。これにより、ブラウザの戻る/進むボタンの機能を保持することができます。
(体を)コンテンツ。 TimerはJavascriptで実装する必要があります(ただし、PHPを使用して検証できます) – symcbean