한 게시판에 한번만 글을 쓸 수 있게하려면요 ...! > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

한 게시판에 한번만 글을 쓸 수 있게하려면요 ...! 정보

한 게시판에 한번만 글을 쓸 수 있게하려면요 ...!

본문

한 게시판에 같은 이이디로 한번만 글을 쓰게 할수는 없는지요.
 
예)자유 게시판이 있다고 치고요 여기에 한 아이디로 1회만 글을 쓸 수 있게 하고 싶습니다.
2번째 글은 쓸 수 없게 ....
 
2번째 글을 쓰려면..
 
이미 글을 쓰셨습니다. 이전 게시물을 삭제하셔야 글 쓰기가 가능합니다. 
이런 메세지를 전달하려면요.  (관리자는 제외)
 
 
 
항상 질문에 친절히 답해주시는 그누의 고수님들에게 감사드립니다.
 
  • 복사

댓글 전체

질/답 게시판에 수차례 언급이 되어 등록합니다.

bbs/write_update.php 의 검사루틴 부분에 추가 하거나
또는 스킨/write.skin.php 의 상단에 추가합니다.

//특정게시판에 회원별로 글한개만 남기게 할경우(관리자는 통과하고 수정은 가능하게)
$table_name ="forum"; //적용할 게시판을 넣어주세요.
$bo_table_name ="".$g4[write_prefix]."".$table_name."";
//회원이면서 관리자는 통과하고 수정은 가능하게
if(($member[mb_id] && !$is_admin && $w != "u") && $bo_table == $table_name){
//코멘트 와 답글, 종류는 전부 제외한 본인의 원글 갯수를 모두 가져오자
$ab_board =mysql_fetch_array(mysql_query("select count(*) from $bo_table_name where wr_is_comment ='0' and wr_reply ='' and mb_id ='$member[mb_id]'"));
$rowmember =$ab_board[0];
//1개이상 존재한다면 
if($rowmember > 0){
alert("$member[mb_name] 님은 이미 이게시판에 $rowmember 개의 \\n남기신 글이 있으므로 더이상 글쓰기를 하실수가 없습니다.");
}
}
나스카님 Welch님 답변감사합니다.

위의 구문을 적용해 보았습니다 ..
게시판 관리 설정에 글 쓰기권한을 레벨2로 하고 있습니다만
무슨 이유에서인지 레벨2에서 계속 글 쓰기가 되는군요.

위의 구문을 적용한 게시판 write.ksin.php 상단입니다.

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

if ($is_dhtml_editor) {
    include_once("$g4[path]/lib/cheditor.lib.php");
    echo "<script src='$g4[editor_path]/cheditor.js'></script>";
    echo cheditor1('wr_content', $content);
}
?>
<?
//특정게시판에 회원별로 글한개만 남기게 할경우(관리자는 통과하고 수정은 가능하게)
$table_name ="forum"; //적용할 게시판을 넣어주세요.
$bo_table_name ="".$g4[write_prefix]."".$table_name."";
//회원이면서 관리자는 통과하고 수정은 가능하게
if(($member[mb_id] && !$is_admin && $w != "u") && $bo_table == $table_name){
//코멘트 와 답글, 종류는 전부 제외한 본인의 원글 갯수를 모두 가져오자
$ab_board =mysql_fetch_array(mysql_query("select count(*) from $bo_table_name where wr_is_comment ='0' and wr_reply ='' and mb_id ='$member[mb_id]'"));
$rowmember =$ab_board[0];
//1개이상 존재한다면 
if($rowmember > 0){
alert("$member[mb_name] 님은 이미 이게시판에 $rowmember 개의 \\n남기신 글이 있으므로 더이상 글쓰기를 하실수가 없습니다.");
}
}
?>
<script language="javascript">
// 글자수 제한
var char_min = parseInt(<?=$write_min?>); // 최소
var char_max = parseInt(<?=$write_max?>); // 최대
</script>

<form name="fwrite" method="post" action="javascript:fwrite_check(document.fwrite);" enctype="multipart/form-data" style="margin:0px;">
<input type=hidden name=null>
<input type=hidden name=w        value="<?=$w?>">
<input type=hidden name=bo_table value="<?=$bo_table?>">
<input type=hidden name=wr_id    value="<?=$wr_id?>">
<input type=hidden name=sca      value="<?=$sca?>">
<input type=hidden name=sfl      value="<?=$sfl?>">
<input type=hidden name=stx      value="<?=$stx?>">
<input type=hidden name=spt      value="<?=$spt?>">
<input type=hidden name=sst      value="<?=$sst?>">
<input type=hidden name=sod      value="<?=$sod?>">
<input type=hidden name=page    value="<?=$page?>">
--------아하 생략 -------------------

이렇게 되어있는데 글이 여전히 써지네요.
> $table_name ="forum"; //적용할 게시판을 넣어주세요.

첫째. 게시판을 제대로 설정하셨습니까?
        (forum이라는 게시판 즉, g4_write_forum이라는 테이블이 존재합니까?)

둘째. 둘러볼 수 있는 링크주소와 테스트용 아이디의 언급은 필수일 듯 합니다.
나스카님 감사합니다..


> $table_name ="forum"; //적용할 게시판을 넣어주세요

이걸 설정 않했군요 ..

에효 ... 언제나 나스카님 정도의 실력이 되려나 ... 공부 넘 힘들어용 ...  -_-;ㅋ
실력이라고 할 것 까지는 없습니다.
단지 일반적인 경우라고 가정한다면,
프로그래머가 어떤 산물을 생성할 때는,
주석문에 문제해결의 실마리를
직·간접적으로 기재한다는 것을 잊지 않았을 뿐입니다.

단지 제가 한 거라곤...
'주석문'을 유심히 살폈을 뿐입니다.
네 ~~ !!

참 ... 위의 적용된 스킨에 다른 게시판에서도 적용하려면

$table_name ="forum,forum2,forum3,forum4,forum5";
이런식으로 게시판 이름을 추가 하면 되겠지요 ...????  맞나요 ...???
> $table_name ="forum,forum2,forum3,forum4,forum5";
이것은 하나의 변수 즉, 하나의 테이블로 인식하게 됩니다.

if ~ else if ~ else 등의 구문을 사용하는 직관적인 방법도 있겠지만,
explode 구분자를 지정하고 특정한 내용을 추출하는 방식이 나을 듯 하군요.

구분자로 추출하는 방법은 'explode' 또는 '구분자'라는 키워드로 찾아 보시기 바랍니다.
© SIRSOFT
현재 페이지 제일 처음으로