게시판에 글쓰기를 딱 한번만 / 하루 글쓰기 횟수를 제한해보자!
사이트를 제작하고 게시판을 만들다 보면, 필요에 의해 만드는 게시판이 가입인사 게시판인데요
이걸 만들면 1번이 아니라 10번 20번도 글 쓸 수 있습니다.
그래서.. 이 게시판만큼은 딱 한번만 글 쓸수 있도록 수정할 수 있는 코드입니다.
이 수정을 통해 가입인사를 유도하고 1번만 글쓸 수 있기 때문에
많은 포인트를 지급해보는 것도 하나의 방법 같습니다!
물론 응용으로 여러 게시판 설정도 포함하였습니다.
사용하시는 게시판의 스킨을 열어주세요
해당스킨/write.skin.php 파일입니다.
상단 적당한 위치에 ...아래 코드를 넣어주세요
$board_name = 'new' 된 걸 가입인사 게시판의 이름으로 바꿔주세요
[code]
<?php
$board_name = 'new';
if(!$is_admin) {
if($w=='' && $bo_table == $board_name) {
$row = sql_fetch("select wr_id FROM `g5_write_{$board_name}` where mb_id='{$member['mb_id']}'");
if($row['wr_id']) {
alert("가입인사 게시판은 한번만 글 작성이 가능합니다.");
}
}
}
?>
[/code]

만약 여러개의 게시판에 적용하고 싶다면 아래 코드를 활용해주세요
[code]
<?php
function fetch_wr_id($mb_id, $table_name) {
$query = "SELECT wr_id FROM `{$table_name}` WHERE mb_id='{$mb_id}'";
return sql_fetch($query);
}
if(!$is_admin) {
$boards = ['new', 'free', 'humor'];
$messages = [
'new' => '신규 게시판은 한번만 글 작성이 가능합니다.',
'free' => '자유 게시판은 한번만 글 작성이 가능합니다.',
'humor' => '유머 게시판은 한번만 글 작성이 가능합니다.',
];
if($w == '' && in_array($bo_table, $boards)) {
$table_name = 'g5_write_' . $bo_table;
$row = fetch_wr_id($member['mb_id'], $table_name);
if($row['wr_id']) {
alert($messages[$bo_table]);
}
}
}
?>
[/code]

이런식으로 배열 관리하시면 좀 더 수월하게 사용할 수 있습니다.
만약 하루 글쓰기 횟수를 제한 하고 싶다면 아래 코드를 활용하시면 됩니다.
[code]
<?php
$board_name = 'new';
$max_count = 2;
if(!$is_admin) {
if($w=='' && $board_name) {
$row = sql_fetch("select wr_id FROM `g5_write_{$board_name}` where mb_id='{$member['mb_id']}'");
$today_row = sql_fetch("select count(wr_datetime) as cnt from `g5_write_{$board_name}` where `mb_id` = '{$member['mb_id']}' and substring(`wr_datetime`,1,10) = '". G5_TIME_YMD ."' and `wr_is_comment` = 0");
if($row['wr_id'] && $today_row['cnt'] >= $max_count) {
alert('해당 게시판은 하루'.$max_count.'회만 작성을 허용합니다.');
}
}
}
?>
[/code]
만약 하루 글쓰기 제한을 여러 게시판에 적용하실려면 아래 코드를 활용하시면 됩니다.
$boards = 게시판 이름 - 더 추가하려면 ,'이름' 하시면 됩니다.
예) $boards = ['new', 'free', 'humor']; 에 하나더 추가하고자 한다면...
$boards = ['new', 'free', 'humor', 'gallery']; - 갤러리가 추가되었습니다.
추가한 뒤에는 반드시 $max_counts 도 추가해주세요
예)
$max_counts = [
'new' => 2,
'free' => 3,
'humor' => 4,
'gallery' => 5,
];
[code]
<?php
if(!$is_admin) {
$boards = ['new', 'free', 'humor'];
$max_counts = [
'new' => 2,
'free' => 3,
'humor' => 4,
];
if($w == '' && in_array($bo_table, $boards)) {
$row = sql_fetch("select wr_id FROM `g5_write_{$bo_table}` where mb_id='{$member['mb_id']}'");
$today_row = sql_fetch("select count(wr_datetime) as cnt from `g5_write_{$bo_table}` where `mb_id` = '{$member['mb_id']}' and substring(`wr_datetime`,1,10) = '". G5_TIME_YMD ."' and `wr_is_comment` = 0");
if($row['wr_id'] && $today_row['cnt'] >= $max_counts[$bo_table]) {
alert('해당 게시판은 하루'.$max_counts[$bo_table].'회만 작성을 허용합니다.');
}
}
}
?>
[/code]

오랜만에 나타나서, 오랜만에 팁하나 적고 갑니다!!
댓글 3개
게시판 목록
그누보드5 팁자료실
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 2695 | 1개월 전 | 171 | ||
| 2694 | 1개월 전 | 134 | ||
| 2693 | 1개월 전 | 143 | ||
| 2692 | 1개월 전 | 158 | ||
| 2691 | 1개월 전 | 312 | ||
| 2690 | 1개월 전 | 217 | ||
| 2689 |
|
1개월 전 | 424 | |
| 2688 | 1개월 전 | 275 | ||
| 2687 |
선택과집중
|
1개월 전 | 313 | |
| 2686 | 1개월 전 | 275 | ||
| 2685 | 1개월 전 | 330 | ||
| 2684 | 2개월 전 | 462 | ||
| 2683 | 2개월 전 | 261 | ||
| 2682 | 2개월 전 | 287 | ||
| 2681 |
선택과집중
|
2개월 전 | 263 | |
| 2680 | 2개월 전 | 313 | ||
| 2679 |
|
2개월 전 | 417 | |
| 2678 |
|
2개월 전 | 487 | |
| 2677 | 2개월 전 | 312 | ||
| 2676 | 2개월 전 | 287 | ||
| 2675 |
선택과집중
|
2개월 전 | 464 | |
| 2674 |
|
2개월 전 | 309 | |
| 2673 | 2개월 전 | 322 | ||
| 2672 | 2개월 전 | 272 | ||
| 2671 | 2개월 전 | 244 | ||
| 2670 | 2개월 전 | 356 | ||
| 2669 | 2개월 전 | 274 | ||
| 2668 |
선택과집중
|
2개월 전 | 470 | |
| 2667 |
선택과집중
|
2개월 전 | 455 | |
| 2666 |
선택과집중
|
3개월 전 | 388 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기