expired_quizzes
あなたの最新のコメントから確認すると、少なくとも 3 つの列を持つテーブルがありquiz_id
、quiz_filename
ブール値がis_active
. また、テーブルを a に正規化するuserid
ので、ユーザー A がそれを表示してクイズに答えた場合でも、ユーザー B は引き続きビデオを見ることができます (ただし、友人との不正行為は簡単になります)。コードや構造を見ずに何が起こっているのかを正確に知ることは困難ですが、次のいくつかを確認してみてください。
検索に基づいてクイズを検索し、Web ページで変数 $_GET
を使用している場合、Web ページにアクセスすると、常にクイズが読み込まれます。したがって、次のことを考慮してください。
http//www.yourwebpage.com/?quizfilename=viewablequiz.mp4
PHP の指示に応じて、常にロードされますviewablequiz.mp4
。それを防ぐために2つの推奨事項があります。
次に、row['filename']
PHP コードを返すか、結果が見つからない (有効期限が切れていないクイズがない) 場合は、ユーザーへの応答で処理します。
- AJAX 経由でビデオを読み込みます。上記と同様のクエリを PHP 側で使用しますが、読み込み後にルックアップが必要なため、画面を更新しても何も読み込まれません。
不正行為を防ぐために、ビデオが表示されるたびにタイムスタンプとユーザー ID を記録する別のテーブルも用意する必要があります。誰が同時にテストと表示を行ったかを確認することで、後で不正行為を検出するのに役立ちます。
もちろん、常に SQL インジェクションから保護し、ユーザー入力を直接 SQL ステートメントに入れないでください。
より詳細な分析を行うには、関連する PHP、HTML、および SQL のみを質問内に投稿する必要があります。