2010-11-28 5 views
1

訪問者が一度に1つのWebページだけを表示できるシステムを設定したいと思います。 ブラウザウィンドウまたはタブは1つだけ許可する必要があります。ユーザを追跡し、複数のウィンドウ/タブをphp/javascriptで無効にする

"is_viewing"というセッション変数を実装しました。それが本当であれば、人はページへのアクセスが拒否されます(単純に別のテンプレートを表示することによって)。

ユーザがあるページから別のページにナビゲートする場合、このセッション変数をリセットする最も良い方法は何ですか?

htmlボディのonunloadイベントにajax関数を追加しました。それがするすべては、セッション変数をfalseに設定します。

しかし、これはあらゆる種類のトラブルや予期しない結果をもたらします。 ページをリフレッシュすると、拒否テンプレートが表示されます(何らかの理由でセッション変数がtrueと表示されます)、別のリフレッシュ後にページを再度ロードできます。

ajaxで呼び出されたスクリプトでヘッダーを扱うことはできませんか? セッション変数をリセットして、別のページを既に表示している場合にユーザーがアクセスを拒否するサイト上でどこを追跡していますか?

+2

なぜこれをやりたいですか?ユーザーが実際に複数のウィンドウやタブを表示したい場合、Javascriptを無効にすることができます。 –

+0

私はライブビデオフィードでいくつかのページを持っています。一度に複数のページを閲覧するのを防ぐ必要があります。 JavaScriptをオフにすると、動画は表示されません。だから、サイトはjavascriptでしか使えないので、JavaScriptをオフにしている人たちについては心配する必要はありません。 – user478419

+1

ipごとに1つのストリームのみを許可するか、ストリーミング時にチェックしたクッキーを設定し、1つのクッキーIDごとに1つのストリームしか許可しないでください。 – Rahly

答えて

0

本当に人がそれをやめないようにするには、サーバー上のIPごとの接続数を制限します。しかし、複数のPCを所有している場合は、家族全員をロックするのを避けるため、1つに制限しないでください。

人々は喜んで、(別のブラウザを起動して例えば)その制限を無視し、各ユーザーにクッキーを与えると、サーバー上のクッキーあたりの接続数を制限するとき、それは大丈夫だ場合 - 。新しいものがでてくるときに、古い接続を殺す

関連する問題