ホームページ >バックエンド開発 >PHPチュートリアル >PHPプログラムが異なるブラウザ上で同時に実行されているかどうかを判断する問題

PHPプログラムが異なるブラウザ上で同時に実行されているかどうかを判断する問題

WBOY
WBOYオリジナル
2016-06-23 14:18:271180ブラウズ

問題はこれです。私はプログラムを持っています(単一のページを想定しています)。このプログラムを実行すると、SESSION、COOKIEなどが原因で検証エラーが発生するため、複数のブラウザを同時に実行したくないのです。同様に、異なるカーネルを持つ 3 つのブラウザを同時に開いて、3 人のユーザーが同時にプログラムを実行しているように見えます。

ブラウザの影響を受けることなく、1 台のコンピュータと 1 人のユーザーが同時に 1 つのプログラムのみを実行できることを確認する方法。

Web ゲームへのログインと同様、同じブラウザで複数のアカウントに同時にログインすることはできませんが、3 つの異なるブラウザを開くことで、同時に 3 つのアカウントにログインできます。

この「開きすぎ」状況を防ぐためにどのように検証すればよいでしょうか?


ディスカッションへの返信 (解決策)

これをメモリまたはデータベースに書き込んで、ユーザーがログインしたかどうかを判断し、各ログインの前にログイン状態を判断できます。これで回避状況は解決されませんか?私が言いたいことはこれなのかわかりません

判断のためにデータベースに書き込むことができます。

mac+ IP 認証はどうですか?

これをメモリまたはデータベースに書き込んで、ユーザーがログインしたかどうかを判断し、各ログインの前にログイン状態を判断できます。これで回避状況は解決されませんか?これを言いたいのかどうかはわかりません

これで同じユーザーの「複数のオープン」を確かに防ぐことができますが、私が望んでいるのは 1 人のユーザーのみがログインできるということです。つまり、3 つの異なるユーザー名であっても機能しません

mac+ip認証はどうですか?

これは実現可能かもしれませんが、実際にそのようなプロジェクトはあるのでしょうか?

http://www.baidu.com/baidu?word=js%E8%8E%B7%E5%8F%96mac%E5%9C%B0%E5%9D%80&ie=utf-8

http:/ /www.baidu.com/baidu?word=js%E8%8E%B7%E5%8F%96mac%E5%9C%B0%E5%9D%80&ie=utf-8

恥ずかしいです、モデレーターありがとうございます

それアカウントをお持ちの場合は、次回のログインで以前のセッション ID が削除され、最新のセッション ID が記録されます。では、どのアカウントがどのアカウントに対応するのかを知るにはどうすればよいでしょうか? このプログラムでは 1 人のユーザーと 1 つのアカウントのみがログインできるようにするのではなく、1 人のユーザーが同時に複数のアカウントでログインできないようにするだけです。 //www.baidu.com/baidu?word=js% E8%8E%B7%E5%8F%96mac%E5%9C%B0%E5%9D%80&ie=utf-8

モデレーター、これにはユーザーが「信頼して許可」をクリックする直接的な方法はありますか?


もちろん、ユーザー情報を取得するにはユーザーの許可が必要です。そうでなければ、イーでも「プリズム」事件を起こすつもりですか?

アカウントをお持ちの場合は、次のログインで前のアカウントが削除され、最新のセッション ID が記録されます

それでは、どのアカウントがどのアカウントにログインできないかを確認するにはどうすればよいでしょうか。このプログラムの代わりに、1 つのアカウントで 1 人のユーザーだけがログインできます

とても混乱していますが、どうしてこれが分からなかったのでしょうか?ログイン時に口座番号を判断して記録する必要はないのでしょうか?それは単なる True/False ですか?


注意してください: MAC アドレスは偽造される可能性があります...



アカウントをお持ちであれば、次のログインで前のログインが強制終了され、最新のセッション ID が記録されます

では、どうすればよいですか。どのアカウントがそれに対応するのかわかりますか? このプログラムでは 1 人のユーザーが 1 つのアカウントでしかログインできないようにするだけです

どうすればいいですか?私はこれを知ることができなかったでしょうか?ログイン時に口座番号を判断して記録する必要はないのでしょうか?それは単なる True/False ですか?

私の目的は、「一人のユーザーが複数のアカウントを開く」という状況を防ぐことです。そのため、確認したいのは、このユーザーが 3 つのアカウントを登録し、3 つの異なるアカウントでログインした場合、同時に使用できるアカウントは 1 つだけであるということです。ブラウザの場合、実際には各アカウントのサーバーに問題はありませんが、これら 3 つのアカウントはすべて同じユーザーによって同時にログインされており、このユーザーがユーザーの取得に使用できるのはそのうちの 1 つだけであることを確認したいと思います。もちろん、ユーザーの許可が必要です。そうでなければ、イーでも「プリズム」事件を起こすつもりですか?

ユーザーが一意であることを判断できる情報はありますか?

注意してください: MAC アドレスは偽造される可能性があります...

Niuniu、一意のユーザーを判断する方法はありますか?

ただセッションごとにアカウントに固有の ID があることを確認してください。ブラウザを変更すると、必ず新しい ID が取得されます。

SESSION にアクセスするたびにアカウントが一意であることを確認してください。ブラウザを変更すると、必ず新しい ID が取得されます。
次に、ユーザーが一意であることを確認する方法を見つける必要があります。アカウントではないので、新しいセッションに変更しました。では、彼が以前にログインしたかどうかを確認するにはどうすればよいですか?

念のために言っておきますが、MAC アドレスは偽造される可能性があります...

Niuniu、何か方法はありますか?唯一のユーザーを決定しますか?

すべてを捨てない限り、ブラウザをクライアントとして使用し、アクセス用の特別なクライアントを開発するか、そうでない場合は方法がありません。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。