メンバーリストを更新して置く禁止スクリプトを作成しましたSET banned=Yes WHERE username=$_POST[username]
しかし、今、私は時間制限のある禁止を行いたいと思います。たとえば、ユーザーが1日禁止された場合、禁止時間後に禁止が解除されます。
誰かが私がこれを行う方法を知っていますか?私はMySQLと時代があまり得意ではありません。
列を「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>
行が返された場合、ユーザーは禁止されますが、それ以外の場合は禁止されません。
禁止の時間と禁止期間を節約します。
擬似コード:
if (current_date == ban_time + ban_duration) { unban_user }
ユーザーが禁止された時間と禁止期間を保存します。ユーザーが禁止されているかどうかを知る必要があるページにアクセスしようとすると、「あなたは禁止されています」というメッセージなどを表示するために、データベースにユーザー情報を問い合わせます。彼が禁止されている場合は、禁止期間を禁止時間に追加し、現在の時間と比較します。計算された時間を過ぎれば解禁できます。
禁止時間 (UNIX タイムスタンプ フィールドまたは日時) と禁止期間を保存する必要があります。ユーザーがログインしようとすると、禁止後に経過した時間を確認し、禁止時間が経過した場合は行を更新し、禁止列を「いいえ」に設定するだけです。 '