-2

メンバーリストを更新して置く禁止スクリプトを作成しましたSET banned=Yes WHERE username=$_POST[username]

しかし、今、私は時間制限のある禁止を行いたいと思います。たとえば、ユーザーが1日禁止された場合、禁止時間後に禁止が解除されます。

誰かが私がこれを行う方法を知っていますか?私はMySQLと時代があまり得意ではありません。

4

4 に答える 4

3

列を「BannedUntil (datetime)」のようなものに変更するだけで、それを将来の 1 日に設定できます。

UPDATE Users SET BannedUntil = DATE_ADD(NOW(), INTERVAL 1 DAY) WHERE username = <username>

そして、ユーザーが禁止されているかどうかを確認するには

SELECT 1 FROM Users WHERE BannedUntil > NOW() AND username = <username>

行が返された場合、ユーザーは禁止されますが、それ以外の場合は禁止されません。

于 2013-02-24T16:05:47.020 に答える
2

禁止の時間と禁止期間を節約します。

擬似コード:

if (current_date == ban_time + ban_duration) { unban_user }
于 2013-02-24T16:05:57.270 に答える
1

ユーザーが禁止された時間と禁止期間を保存します。ユーザーが禁止されているかどうかを知る必要があるページにアクセスしようとすると、「あなたは禁止されています」というメッセージなどを表示するために、データベースにユーザー情報を問い合わせます。彼が禁止されている場合は、禁止期間を禁止時間に追加し、現在の時間と比較します。計算された時間を過ぎれば解禁できます。

于 2013-02-24T16:07:15.430 に答える
0

禁止時間 (UNIX タイムスタンプ フィールドまたは日時) と禁止期間を保存する必要があります。ユーザーがログインしようとすると、禁止後に経過した時間を確認し、禁止時間が経過した場合は行を更新し、禁止列を「いいえ」に設定するだけです。 '

于 2013-02-24T16:06:46.847 に答える