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

게시판에 글쓰기를 딱 한번만 / 하루 글쓰기 횟수를 제한해보자!

· 2년 전 · 1889 · 3

사이트를 제작하고 게시판을 만들다 보면, 필요에 의해 만드는 게시판이 가입인사 게시판인데요

이걸 만들면 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]

1893637532_1683855347.2174.png

 

만약 여러개의 게시판에 적용하고 싶다면 아래 코드를 활용해주세요

 

[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]

1893637532_1683855105.9814.png

 

이런식으로 배열 관리하시면 좀 더 수월하게 사용할 수 있습니다.

만약 하루 글쓰기 횟수를 제한 하고 싶다면 아래 코드를 활용하시면 됩니다.

 

[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]1893637532_1683855249.1516.png

 

만약 하루 글쓰기 제한을 여러 게시판에 적용하실려면 아래 코드를 활용하시면 됩니다.

$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]

1893637532_1683855530.3911.png

 

오랜만에 나타나서, 오랜만에 팁하나 적고 갑니다!!

댓글 작성

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

로그인하기

댓글 3개

2년 전
좋은 팁이네요. 감사합니다. ^^
2년 전
아주 유용한 팁이네요 감사합니다.
2년 전
좋은 팁 감사합니다.

게시글 목록

번호 제목
23798
23797
23792
23791
23785
23781
23770
23766
23764
23761
23747
23732
23724
23718
23706
23700
23697
23686
23682
23681
23680
23678
23665
23644
23643
23639
23637
23630
23626
23616