그누보드 비회원 작성 댓글 수정 기능 활성화 방법
페이지 정보

본문
그누보드에서 기본적으로 지원하지 않는 비회원 댓글 수정 기능을 스킨 및 처리 파일 수정으로 활성화하는 방법을 안내합니다.
비회원 댓글 수정 기능 활성화 방법
그누보드는 기본적으로 비회원 댓글 수정을 지원하지 않으므로, 스킨 파일 수정과 비밀번호 확인 로직 추가가 필요합니다. 작업 전 반드시 해당 스킨 파일을 백업하십시오.
1. view_comment.skin.php 수정
스킨 폴더 내 view_comment.skin.php 파일을 열어 다음 내용을 적용합니다.
- 수정 버튼 출력: 반복문
for ($i=0; $i<$cmt_amt; $i++) {내부에 추가합니다.if ($is_guest &&!$list[$i]['mb_id']) { $list[$i]['is_edit'] = true; } - 작성자 이름 유지:
<input type="hidden" value="<?php echo strstr($list[$i]['wr_option'],"secret")?>" id="secret_comment_<?php echo $comment_id?>">코드 바로 밑에 추가합니다.<?php if ($is_guest) {?><input type="hidden" value="<?php echo $list[$i]['wr_name']?>" id="save_comment_name_<?php echo $comment_id?>"><?php }?> - 스크립트 보완:
document.getElementById('wr_content').value =...코드 바로 밑에 추가합니다.<?php if ($is_guest) {?>document.getElementById('wr_name').value = document.getElementById('save_comment_name_' + comment_id).value;<?php }?>
2. 비밀번호 검증 로직 추가
스킨 폴더 안에 write_comment_update.head.skin.php 파일을 생성하고 아래 코드를 입력합니다.
<?php
if (!defined('_GNUBOARD_')) exit;
if ($w == "cu" && $is_guest) {
$wr_password = trim($_POST['wr_password']);
$write = sql_fetch(" select * from $write_table where wr_id = '$comment_id' ");
if (!check_password($wr_password, $write['wr_password'])) {
alert("비밀번호가 틀립니다.");
}
}
?>
주의사항: 본 방법은 기본 테스트만 거쳤으며, 비밀 댓글에 대한 보안 취약점이 존재할 수 있습니다. 비밀번호 분실 시 관리자 페이지에서 DB를 직접 확인하거나 수정해야 하므로 운영 시 주의가 필요합니다.
비회원 댓글 수정 시 작성자 이름과 비밀번호 검증 로직 추가 방법
그누보드 환경에서 비회원이 작성한 댓글을 수정할 때 작성자 이름이 유지되도록 스크립트를 보완하고, 전송된 비밀번호를 검증하는 로직을 추가하는 방법입니다.
1. 작성자 이름 가져오기 설정
view_comment.skin.php 파일에서 아래 코드 바로 밑에 비회원 작성자 이름을 저장하는 hidden 입력을 추가합니다.
<input type="hidden" value="<?php echo strstr($list[$i]['wr_option'],"secret")?>" id="secret_comment_<?php echo $comment_id?>">
추가할 코드:
<?php if ($is_guest) {?><input type="hidden" value="<?php echo $list[$i]['wr_name']?>" id="save_comment_name_<?php echo $comment_id?>"><?php }?>
2. 스크립트 수정
view_comment.skin.php 내 스크립트 영역에서 내용(wr_content) 값을 가져오는 코드 바로 밑에 비회원 이름(wr_name) 값을 채워 넣는 코드를 추가합니다.
document.getElementById('wr_content').value = document.getElementById('save_comment_' + comment_id).value;
추가할 코드:
<?php if ($is_guest) {?>document.getElementById('wr_name').value = document.getElementById('save_comment_name_' + comment_id).value;<?php }?>
3. 신규 파일 생성 및 비밀번호 검증 로직 추가
스킨 폴더 안에 write_comment_update.head.skin.php 파일을 새로 생성하고 아래 내용을 입력합니다. 이 로직은 수정 요청 시 입력된 비밀번호가 일치하는지 확인합니다.
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if ($w == "cu" && $is_guest) {
$wr_password = trim($_POST['wr_password']);
$write = sql_fetch(" select * from $write_table where wr_id = '$comment_id' ");
if (!check_password($wr_password, $write['wr_password'])) {
alert("비밀번호가 틀립니다.");
}
}
?>
함께 보면 좋은 글
- 그누보드 비회원 작성 게시글 비밀댓글 작성 제한 방법
- 그누보드 댓글 쓰기 권한 없는 비회원 대상 입력 폼 노출 및 readonly 처리 방법
- 그누보드 게시판 댓글 작성 및 수정 페이지에 여분필드 적용하는 방법
참고자료
기타 참고자료
- 이전글그누보드 최신글 제목 클릭 시 본문 대신 게시판 목록으로 이동하도록 링크 수정하는 방법 26.10.20
- 다음글그누보드 새 글 등록 시 다른 게시판에 동시에 자동 등록하기 26.10.20
댓글목록
등록된 댓글이 없습니다.