1

$_SESSION(変数を使用して)3回失敗すると、ユーザーのコンピューターにCookieが作成され、10分で期限切れになるログインシステムを実装しました。クッキーを削除するだけなので、これでは十分ではないことがわかりました。さて、私が知りたいのは、IPとユーザー名の組み合わせを介して誤ったログインをキャプチャするためのテーブルを実装するとき、このテーブルはいつクリアされるのですか?ブロック時間が経過した後、ユーザーが正常にログインしたときは?

このテーブルに1000エントリが入力されているとしましょう。これを自動的にクリアするにはどうすればよいですか?テーブルの構造は何ですか?

私はこれを提案します:
4つのフィールド: ID、IP、ユーザー名(メールアドレスになります)、block_time(ユーザーが再度ログインできる時間)?

4

1 に答える 1

1

最初のログイン失敗後にレコードを作成し、ログイン成功後にレコードを削除できます。
2番目のアプローチは、「変更された」列を作成し、php-cronスクリプトを使用してそれをクリーンアップすることです。

INSERT INTO user_logins(user_hash, time) VALUES(?,?)
ON DUPLICATE KEY UPDATE time = now()

もちろん、主キーはuser_hashになります。

于 2011-02-28T08:30:14.540 に答える