2013-02-24 4 views
-2

나는이 회원 목록을 업데이트 금지 스크립트를 만들어PHP 시간 제한?

SET banned=Yes WHERE username=$_POST[username]을 넣어하지만 지금은 사용자가 하루 동안 금지 얻을 경우, 그는 자신의 금지 시간 이후 취소 금지 될 것 같은, 시간 제한 금지를하고 싶습니다 .

아무도 내가 이것을 할 수있는 방법을 알고 있습니까? 나는 MySQL과 시대에별로 좋지 않다.

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

그리고 우리 경우 사용자가

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

을 금지하는 경우 확인 :

+2

이것은 위험합니다'SET 금지 = 예 WHERE username = $ _ POST [username]'SQL 문에 넣기 전에 코드를 씻어야합니다. –

답변

2

간단하게 뭔가에 열을 변경 "BannedUntil (날짜)"미래의 어느 날 그 설정 행을 되 찾으면 사용자는 금지되고 그렇지 않으면 금지됩니다.

2

금지 시간 및 금지 기간을 저장합니다.

의사 코드 : 사용자가 로그인 할 때

if (current_date == ban_time + ban_duration) { unban_user } 
0
또한 금지 시간 (유닉스 타임 스탬프 필드 또는 날짜) 및 금지 기간을 저장해야합니다

, 당신은 단순히 금지 경과 얼마나 많은 시간을 확인할 수 있습니다, 금지 시간이 지나면 행을 업데이트하고 금지 열을 '아니요'로 설정하십시오.

1

사용자가 금지 된 시간과 금지 기간을 저장하십시오. 사용자가 금지되어 있는지 여부를 알아야하는 페이지에 액세스하려고 할 때 "금지 된 메시지"또는 기타 등등을 표시하려면 데이터베이스에 사용자 정보를 쿼리하십시오. 금지 된 경우 금지 기간에 금지 기간을 추가하고 현재 시간과 비교합니다. 계산 된 시간을 지났 으면 금지를 해제 할 수 있습니다.