2017-01-04 5 views
0

私は実際に数々の数々の大会を開催するウェブサイトで作業しています。すべてのゲームは独自のページと独自のスタートとタームを持っています。 現在、すべてのページで、私はJavaScript関数で時間を管理しています。このような何か:ユーザーが潜在的メカニズムを処理し、すべての瞬間にすべての可能なケースをシミュレートすることができるようにユーザによる時間ベースのイベントの処理を防ぐ方法

var start = new Date(/*date of start*/), 
    end = new Date(/*date of end*/); 
function timeControl() { 
    var now = new Date; 
    if (now<start) { 
     //case 1 
    } else if (now>start && now<end) { 
     //case 2 
    } else { 
     //case 3 
    } 
} 
setInterval(timeControl, 1000); 

私の問題は、JSは、クライアントによって実行されていることです。

質問は次のとおりです。どのようにユーザーの操作を防止できますか?明らかに私はJSではないと思うので、JSではないと思います。

答えて

0

これは非常に広範な質問です。どのように正確に行うことができるかは、バックエンド、あなたはそれをどれくらいよく知っていますか、どのような場合に起こるべきかについての正確な要件は何かなどです。

しかし、一般的な考え方では、クライアント側にあるすべてのことは、クライアントがそれをどのようにうまく操作できるかどうかを操作することができます。あなたのケースでは

が、それはこのようなものかもしれません:(!サーバー側)

  1. がクライアントにコンテストでページを表示、記録するタイムスタンプは、あなたが彼にそれを務めました。
  2. クライアントが解決策を提出すると、現在のタイムスタンプとタイムスタンプがタイムスタンプに配信された時間の差(サーバー側!)を確認します。
  3. クライアント側では、&の有効期限が過ぎてもコンテンツを非表示にするロジックを追加することもできますが、99%のケースでは動作しますが、既に発見したように、これは改ざんされますそれは物事を刺激する化粧品としてのみです。
+0

はい、私はこれが唯一の方法であることを知っています。私の質問で私が意味することは、どうすれば実際にこれを行うことができますか? 私は開発とWeb開発の専門家ではなく、趣味のためのコードですが、私は新しい言語と新しい開発領域を学ぶことに興味があります。 たとえば、私はAJAXが可能な解決策であると思っていましたが、実際にはサーバーからの応答がJSで処理されているわけではないので、何も変わりません。 –

+0

また、私はあなたを助けることができず、私は誰でもできるとは思わない。このような状況では、私はいつもこれをお勧めします:ペンと紙をとり、真剣に考え、実現したいものが何であるかを想像してみてください。まったく同様に、完全に、そして曖昧さなく。それらのすべてを書き留めて、より小さな断片に分解してください。それらのうちのいくつかはコーディング方法を知っていますが、そのうちのいくつかはSOに尋ねます。また、プロセス中に、あなたは現在あなたが望むものはもはや望んでいないことを理解するかもしれません。これは追加ボーナスです;) –

関連する問題