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

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

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

게시글 목록

번호 제목
22896
22895
22885
22875
22872
22862
22860
22855
22849
22846
22824
22812
22809
22801
22795
22786
22765
22756
22739
22735
22685
22639
22636
22607
22605
22603
22592
22583
22578
22577