테스트 사이트 - 개발 중인 베타 버전입니다

하나의 아이디로 한달에 5개 까지만 글쓰기 제한을 두고 싶습니다 어떻게 해야하나요?

· 15년 전 · 1944 · 4
하나의 아이디로 한달에 5개 까지만 글쓰기 제한을 두고 싶습니다 어떻게 해야하나요?
초보라 잘알지를 못합니다.
고수님들의 가르침을 바랍니다

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 4개

글 작성시 카운트 해서
1. 세션에 담던가
2. 쿠키에 담던가
3. 디비에 담던가 하면 되죠
15년 전
제가 초보라서 소스를 작성할줄 모릅니다.
어떻게 작성하는지 자세히 좀 설명을 해주시면 고맙겠습니다
DB가 답일듯한데
테이블 하나 만들고
글쓰는페이지에
db검사해서 5초과면 에러뜨고 아니면 +1 하는 소스 넣고 그럼 끝
15년 전
세션 쿠키보다는 DB에 담는것을 추천해 드립니다. 세션으로 해도 되지만 DB가 더 컨트롤하기 좋고 쿠키는 클라이언트(사용자)측에 저장되기 때문에 삭제 및 조작이 가능합니다.
테이블을 하나 만드셔야 합니다. 컬럼은 id, mb_id, date, count 3개면 될듯하네요,,
이렇게 만드신후 글등록하는 페이지 (/bbs/write_update.php)에서 글등록 되기전에 우선 확인합니다.
ID | MB_ID | DATE | COUNT
-------------------------------------------
1 | tester | 2010.11 | 3

위 테이블을 write_count_table 이라 하고 다음과 같이 글이 등록되어 데이터가 들어가있다고 예를 들어봅시다.

$checkQry="select id, count from write_count_table where id='{$member[mb_id]}' and date='".date('Ym')."'";
$result=sql_fetch($checkQry);
if($result['count']>=5)
{
// 글등록 안되게 처리
}
else
{
// 글등록 되게끔 처리
}

위와 같이 처리해 주시면 될듯 합니다. $result['count']가 5이하이면 글등록을 시켜주고 글이 다 등록된 뒤에는 insert또는 update를 해주셔야 합니다.

일단 위에 결과물이 있으니까 그걸 이용하면 되겠죠..?
if($result['id']) // 이번달에 이미 한번이상 등록되어 있는 경우
{
$updateQry="update write_count_table set count=count+1 where id='{$result[id]}'";
sql_query($updateQry);
}
else // 이번달에 아직 한번도 등록되지 않은경우
{
$insertQry="insert into wirte_count_table set id='{$member[mb_id]}', date='".date('Ym')."', count=1";
sql_query($insertQry);
}

위와 같이 처리하시면 됩니다.

게시글 목록

번호 제목
284508
284499
284492
284490
284484
284481
284478
284476
284474
284472
284470
284458
284457
284454
284453
284447
284446
284444
284441
284440