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

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

· 2년 전 · 1888 · 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년 전
좋은 팁 감사합니다.

게시글 목록

번호 제목
24318
24317
24315
24309
24294
24293
24277
24262
24260
24253
24251
24236
24233
24228
24226
24221
24214
24203
24201
24199
24196
24195
24194
24192
24191
24187
24185
24183
24172
24168