検索

ホームページ  >  に質問  >  本文

php - PC側でユーザーのログイン数を制限!

ログイン エラーの数とセッション時間を保存します。エラーの最大数に達すると、ログインできなくなります。ただし、Cookie をクリアするとログインできます。どうやって解決すればいいのでしょうか?それともログイン数を制限する他の方法はありますか?ありがとう!

怪我咯怪我咯2736日前863

全員に返信(4)返信します

  • 我想大声告诉你

    我想大声告诉你2017-05-31 10:35:27

    データベースにフィールドを追加し、回数を超えた場合はアカウントをロックします...

    返事
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-31 10:35:27

    キャッシュ制御にはmemcacheまたはredisを使用します

    $key = ログインアカウント

    $value = 失敗したログインの数

    $this->set($key,$value);

    返事
    0
  • 高洛峰

    高洛峰2017-05-31 10:35:27

    IP と HTTP_USER_AGENT を使用して、同じユーザーかどうかを判断します

    返事
    0
  • 高洛峰

    高洛峰2017-05-31 10:35:27

    あなたのような状況は、グローバル キャッシュを通じてのみ処理できます。特定のユーザー名のログイン数を制御する場合は、
    1. キー値キャッシュの場合、統一データ構造 key=value => username={'ログイン数':1} を使用し、redis、memcache、mysql を使用します。 (キャッシュテーブル、カラム[キー値]、インデックスハッシュキーを作成)
    $userinfo = $cacheobj->get('username')でユーザー情報を取得し、ログイン数を求め、ログイン数を増やす $cacheobj -> set('ユーザー名', $userinfo) 書き戻します

    2. データベースのログイン情報テーブル構造に組み込みます

    mysql ユーザーログインテーブルに新しいログイン番号カラムを追加し、SQL を呼び出し、取得、判定、自動インクリメント、更新します

    時差を含めたい場合は、

    1. KeyValue キャッシュの場合

    、データ構造はユーザー名 = {'ログイン数': 1, 'タイムアウト時間': タイムスタンプ} に更新され、タイムアウトが発生した場合の判定に時間許容度が加算されます。ログイン数は0に設定されています

    2. MySQL 以外のキー値キャッシュ (redis、memcache) の場合

    $cacheobj->set('username', 'ログイン数', timeout)

    3. データベースのログイン情報テーブル構造に組み込みます

    この場合、タイムアウト列を追加します

    これを実装するには、主に実際のシナリオとリソースに応じて無数の方法があります。

    返事
    0
  • キャンセル返事