아이디 당 댓글 1개만 등록....alert창 띄운 후 댓글이 생성되네요..
아래...게시글(https://sir.kr/qa/254867) 에 jbsstyle 님이 답변 주신것을 참고해서..
수정하여
/skin/board/xxx/write_comment_udpate.skin.php
처리를 했는데요...
아래 코드는 모두 실행되어 아래 Alert 창까지 처리되었는데요.
댓글이 생성되네요...

알람창을 띄우고 작성한 댓글을 지워야 하나요?
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
$mb_id = $member['mb_id'];
$sql = " select count(*) as count from $write_table
where wr_parent = '$wr_id'
and mb_id = '$mb_id' ";
$row = sql_fetch($sql);
//echo $sql; exit;
if ($row['count'] != "0" ) )
alert('댓글은 1개만 등록이 가능합니다.');
?>
답변 5개 / 댓글 1개
댓글을 1개씩만 달게 하고 싶으시면 로직을 만들어야 합니다.
위 소스는 댓글이 1개 이상 등록되었는지 확인만 하는 소스 이구요.
댓글이 1개 달렸으면 그 후부터는 댓글을 아예 못쓰게 해야하는 거구요.
그러면 한 사용자가 댓글을 2개 달 수 조차 없기 때문에 원하시는 서비스가 될 겁니다.
님은 이미 한사람 댓글이 2-3개 달린 상태에서 로직을 1개 이상 못단다고 하려고 하시는 거 같은데
그 경우 2-3개 달렸더라도 최초 한개만 보이게 해야겠죠.
전자가 정상 로직일텐데 당장의 상태를 바꿔 보시려고 하시니 다음과 같이 진행 해보세요.
위 로직은 그대로 쓰시구요.
write_comment_udpate.skin.php 파일 15라인쯤
$cmt_amt = count($list);
// 추가해주세요.
$comment_yn = false;
$mem_commet = array();
// 추가해주세요.
for ($i=0; $i<$cmt_amt; $i++) {
// 추가 해주세요.
if(!$comment_yn)
$member['mb_id'] == $list[$i]['mb_id'] ? $comment_yn=true : $comment_yn=false;
if($mem_commet[$list[$i]['mb_id']] == "")
$mem_commet[$list[$i]['mb_id']] = 1;
else
continue;
// 추가 해주세요.
이후 1번 이상 댓글 단사람은 아예 댓글 다는 창을 없애 줍니다.
대충 317라인 쯤
// 추가해주세요.
<?php if(!$comment_yn){?>
comment_box('', 'c'); // 댓글 입력폼이 보이도록 처리하기위해서 추가 (root님)
<?php }?>
// 추가해주세요
이경우 댓글에 답변도 댓글을 단사람은 막야야 겠죠. 댓글에 답변도 댓글로 인식하니까요.
대충 80라인 쯤
<ul class="bo_vc_act">
<?php if(!$comment_yn){?>
<?php if ($list[$i]['is_reply']) { ?><li><a href="<?php echo $c_reply_href; ?>" onclick="comment_box('<?php echo $comment_id ?>', 'c'); return false;" class="btn_b03">답변</a></li><?php } ?>
<?php }?>
bbs 폴더에 보시면 write_comment_update.php 코멘트 업로드 하고나서 스킨 폴더에 write_comment_update.skin.php 가 출력됩니다. 그러니간 디비저장후에 출력됩니다.
스킨폴더에 write_comment_update.head.skin.php 파일에 적용하시고 없으시면 파일을 만들어서 올리시면 될것같아요^^
bbs 폴더에 보시면 write_comment_update.php 에 마지막부분 내용입니다.
$sql = " update $write_table
set wr_subject = '$wr_subject',
wr_content = '$wr_content',
wr_1 = '$wr_1',
wr_2 = '$wr_2',
wr_3 = '$wr_3',
wr_4 = '$wr_4',
wr_5 = '$wr_5',
wr_6 = '$wr_6',
wr_7 = '$wr_7',
wr_8 = '$wr_8',
wr_9 = '$wr_9',
wr_10 = '$wr_10',
wr_option = '$wr_option'
$sql_ip
$sql_secret
where wr_id = '$comment_id' ";
sql_query($sql);
}
// 사용자 코드 실행
@include_once($board_skin_path.'/write_comment_update.skin.php');
@include_once($board_skin_path.'/write_comment_update.tail.skin.php');
delete_cache_latest($bo_table);
해당 소스를 write_comment_update.head.skin.php' 로 해보세요 글 올라가기 전에 체크합니다.
if ($row['count'] != "0" ) )
alert('댓글은 1개만 등록이 가능합니다.');
==>
if ($row['count'] != "0"){
alert('댓글은 1개만 등록이 가능합니다.');
exit;
}
답변에 대한 댓글 1개
댓글이 DB로 등록되어 생성된게 아닌듯 하고 스크립트 상에서 보여지는 부분이 아닌지 싶은데
그게 아니라면 수정페이지에서 insert 부분으로 처리되는 부분을 체크해 보셔야 할듯 싶습니다.
답변을 작성하려면 로그인이 필요합니다.