게시물 작성제한으로 수정까지 안되네요 > 그누4 질문답변

그누4 질문답변

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

게시물 작성제한으로 수정까지 안되네요 정보

게시물 작성제한으로 수정까지 안되네요

본문

질답게시판에서 검색하여..
버그만님의 게시물을 참조하여..일 게시물 작성숫자를 2개로 제한하여 사용중입니다..

아래의 대로 적용을 하였습니다만..

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

if($is_admin != "super")
{
$sql = " select count(*) as cnt from $write_table where  wr_is_comment = 0 and mb_id ='$member[mb_id]'  and wr_datetime like '$g4[time_ymd]%' ";
$row = sql_fetch($sql);

if ($row[cnt] >= 2) {
alert("작품등록은 하루에 2점까지만 하실수 있으십니다");
}
}


게시물 작성제한은 잘 되는데..
게시물 수정을 하여하면 작성제한 메세지가 뜨면서 수정이 불가하네요..

질답게시판을 보다보니..
세계의끝님께서 도배방지 적용글을 올려주신것을 보았습니다만..

작성제한을 24시간을 기준으로하는지라..
버그만님의 방식으로 적용을 하였습니다만.. 수정방법을 몰라서.. ^^;;
문의 드립니다..


24시간 기준 도배방지적용은 아래와 같이 하셨던데..

//시간계산
function oekaki_paint_time($paint_time){
 $ptime=sprintf("%d시간 %d분 %d초",$paint_time/3600,($paint_time/60)%60,$paint_time%60);
 if($paint_time<3600)$ptime=sprintf("%d분 %d초",($paint_time/60)%60,$paint_time%60);
 if($paint_time<60)$ptime=sprintf("%d초",$paint_time%60);
 $array=array(' 0분',' 0초');
 $ptime=str_replace($array,'',$ptime);
 return $ptime;
}

//관리자나 글 수정시에는 체크하지 않는다
if(!$is_admin&&($w!='u')){
//연속된 글을 작성 하였더라도 해당 시간이 지나면 글쓰기 가능. 사용하지 않으려면 값을 0으로 설정
$write_time=24; //단위 시간
//$write_time옵션 사용시 해당 옵션을 활성화 하면 도배 게시물에서 제일 마지막 게시물의 시간을 체크한다.
//0은 도배 게시물중 제일 오래된(시간상) 게시물, 1은 도배 게시물중 가장 최근 게시물.
$last_list=0;
//연속글 카운트 원하는 숫자로 수정
$write_count=5;
//회원이면 아이디 비회원이면 아이피를 가져온다
$fild=$is_member?'mb_id':'wr_ip';
//$write_count를 참고하여 마지막 작성된 글의 아이디 혹은 아이피를 가져온다
$test=sql_query(" select $fild, wr_datetime from $write_table where wr_is_comment = '0' order by wr_id desc limit $write_count ");
$list_count=0;
//회원이면 아이디 비회원이면 아이피 할당
$name_ip=$is_member?$member['mb_id']:$_SERVER['REMOTE_ADDR'];
while($test_list=mysql_fetch_array($test)) {
 if($name_ip==$test_list[$fild]){
  if($write_time){
  if($last_list&&!$list_count)$lists=true; else if(!$last_list)$lists=true; else $lists=false;
  if($lists){
    $stime=strtotime($test_list['wr_datetime']);
    $write_time2=$g4['server_time']-$stime;
    $write_time3=($write_time*3600)+$stime;
    if($write_time2>=($write_time3-$stime)) break;
  }
  }
  $list_count++;
 }
}
//차단
if($list_count>=$write_count) {
  if($write_time){
  $write_time4=oekaki_paint_time($write_time3-$g4['server_time']);
  $error_text='\n다른사람이 글을 작성하지 않는다면 다음글은\n'.$write_time4.' 후에 작성 가능합니다.\n('.date('Y.m.d A.g:i:s',$write_time3).')';
  }
  alert('글을 '.$write_count.'개이상 연속으로 작성할 수 없습니다.'.$error_text);
 }
}



위에 보니..
관리자와 게시물의 수정시에는 제한적용이 되지 않게 하셨더군요..
(제가 원하는것이기도 합니다 )

전 자정을 기준으로 작성제한을 원하는지라..

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

if($is_admin != "super")
{
$sql = " select count(*) as cnt from $write_table where  wr_is_comment = 0 and mb_id ='$member[mb_id]'  and wr_datetime like '$g4[time_ymd]%' ";
$row = sql_fetch($sql);

if ($row[cnt] >= 2) {
alert("작품등록은 하루에 2점까지만 하실수 있으십니다");
}
}

위 방식에서..게시물 수정시에는 작성제한오류가 안되도록 하려면 어찌해야 할까요?
초보자라 잘 부탁드려봅니다..
  • 복사

댓글 전체

if($is_admin != "super") 를

if($is_admin != "super" && $w != "u") 로 바꿔보세요.

만일, 허용하는 관리자를, 최고관리자 이외에, 해당 그룹/게시판 관리자까지 범위를 넓히려면

if(!$is_admin && $w != "u") 로 하시면 될듯..
© SIRSOFT
현재 페이지 제일 처음으로