KBoard 댓글 4.6 업데이트 후 댓글 작성시 "권한이 없습니다" 오류 발생
확인 부탁드립니다.
안녕하세요.
KBoard 플러그인 4.6 버전부터는 댓글 스킨에서 변경된 코드가 있습니다.
보안성 높이고 기존에 만들지 못했던 스킨을 만들 수 있도록 개선되었습니다.
그렇기 때문에 업데이트 시 댓글 스킨을 유지하고 업데이트하실 경우
기존 스킨 코드를 이전 댓글에 안내해드린 코드로 적용해주셔야 합니다.
https://www.cosmosfarm.com/threads/document/38789#document-answer-38833
고맙습니다.
저도 댓글 플러그인 업데이트만 했는데 해당증상이 생겨서 해결방법 내용을 보고 생각하니,
스킨파일을 제외한 업데이트를 했더라구요..ㅎㅎ
저는 default 스킨만 쓰고 있어서 전체 업데이트 다시 하니 문제 해결되었습니다.
별도 스킨 사용하시는 분들은 아마 해결방법대로 직접 수정해서 사용하셔야 할 것 같습니다.
저도 지난주 Kboard 오류가 있어서 마침 업데이트까지 했는데 문제가 있었습니다.
FTP들어오셔서 수정을 해서 문제는 해결됐었는데,
위와같이 댓글에 "권한이 없습니다"라는 오류메시지가 나왔습니다.
위에 답변 주신 대로
/wp-content/plugins/kboard-comments/skin/(게시판이 아닌 댓글 플러그인) 에 들어가니
list.php 파일이 있어서 해당부분을 말씀주신대로
<?php wp_nonce_field('kboard-comments-execute', 'kboard-comments-execute-nonce-'.$content_uid, !wp_doing_ajax())?>
으로 변경하니 해결되었습니다.
앞서 기술지원을 해주실 때 직접 수정하거나 변경하면 기술지원이 필요할 때 유료라고 하셨던 부분이 있는데,
이부분은 꼭 기록해 두셨다가 기술지원시 참고해주시기 바랍니다.
그리고 Kboard 가 상당히 무거워서 속도를 떨어뜨리는 원인이라고 하는데요,
이에 대한 패치도 있으면 좋겠습니다.
감사합니다!
저는 ask-one 게시판에서 위 증상이 나타나
/wp-content/plugins/kboard-comments/skin/ 들어갔더니 default 폴더밖에 없어서 그 폴더 내의 list.php 파일에
<?php wp_nonce_field('kboard-comments-execute', 'kboard-comments-execute-nonce')?>
이 부분을 찾아
<?php wp_nonce_field('kboard-comments-execute', 'kboard-comments-execute-nonce-'.$content_uid, !wp_doing_ajax())?>
이렇게 변경했더니 ask-one 게시판의 해당 증상이 사라졌습니다.
참고 하셔요~~~
위 댓글에서 알려주신 코드로 교체한 이후에 정상적으로 동작 하네요.
감사합니다.
혹시, FTP로 접속해서 /wp-content/plugins/kboard-comments/skin/사용중인스킨/list.php 파일에
아래와 같은 코드가 있다면
<?php wp_nonce_field('kboard-comments-execute', 'kboard-comments-execute-nonce')?>
아래의 코드로 교체해서 확인해보시고 알려주시겠어요?
<?php wp_nonce_field('kboard-comments-execute', 'kboard-comments-execute-nonce-'.$content_uid, !wp_doing_ajax())?>
고맙습니다.
동일한 환경에서 저희 쪽 테스트 서버에서 확인해보니
별 다른 문제를 확인하진 못했습니다.
저희 고객지원 쪽 이메일로 워드프레스 관리자 계정과 FTP 접속 정보를 보내주시면 점검해드리겠습니다.
고맙습니다.
현재 모든 게시판의 읽기, 쓰기, 댓글쓰기, 댓글보기 의 권한설정이 '제한없음'으로 운영하고 있는 상태입니다.
댓글 스킨의 코드 수정 및 추가 사항은 아래와 같습니다.
1. 댓글 수정, 삭제는 관리자만 가능하게 함
수정파일 : /wp-content/plugins/kboard-comments/skin/사용중인스킨/list-template.php
아래의 코드를 찾아서
<?php if($commentBuilder->isWriter()):?>
<div class="left">
<?php if($comment->isEditor()):?>
<button type="button" class="comments-button-action comments-button-delete" onclick="kboard_comments_delete('<?php echo $commentURL->getDeleteURL()?>');" title="<?php echo __('Delete', 'kboard-comments')?>"><?php echo __('Delete', 'kboard-comments')?></button>
<?php else:?>
<button type="button" class="comments-button-action comments-button-delete" onclick="kboard_comments_open_confirm('<?php echo $commentURL->getConfirmURL()?>');" title="<?php echo __('Delete', 'kboard-comments')?>"><?php echo __('Delete', 'kboard-comments')?></button>
<?php endif?>
<button type="button" class="comments-button-action comments-button-edit" onclick="kboard_comments_open_edit('<?php echo $commentURL->getEditURL()?>');" title="<?php echo __('Edit', 'kboard-comments')?>"><?php echo __('Edit', 'kboard-comments')?></button>
<button type="button" class="comments-button-action comments-button-reply kboard-reply" onclick="kboard_comments_reply(this, '#kboard-comment-reply-form-<?php echo $comment->uid?>', '#kboard-comments-form-<?php echo $content_uid?>');" title="<?php echo __('Reply', 'kboard-comments')?>"><?php echo __('Reply', 'kboard-comments')?></button>
</div>
<?php endif?>
아래의 코드로 교체함
<?php if($commentBuilder->isWriter()):?>
<div class="left">
<?php if($board->isAdmin()):?>
<button type="button" class="comments-button-action comments-button-delete" onclick="kboard_comments_delete('<?php echo $commentURL->getDeleteURL()?>');" title="<?php echo __('Delete', 'kboard-comments')?>"><?php echo __('Delete', 'kboard-comments')?></button>
<button type="button" class="comments-button-action comments-button-edit" onclick="kboard_comments_open_edit('<?php echo $commentURL->getEditURL()?>');" title="<?php echo __('Edit', 'kboard-comments')?>"><?php echo __('Edit', 'kboard-comments')?></button>
<?php endif?>
<button type="button" class="comments-button-action comments-button-reply kboard-reply" onclick="kboard_comments_reply(this, '#kboard-comment-reply-form-<?php echo $comment->uid?>', '#kboard-comments-form-<?php echo $content_uid?>');" title="<?php echo __('Reply', 'kboard-comments')?>"><?php echo __('Reply', 'kboard-comments')?></button>
</div>
<?php endif?>
2. 댓글에서 비밀번호를 입력하지 않도록 /wp-content/plugins/kboard-comments/skin/사용중인스킨/list.php 파일을 수정함.
아래의 코드를 찾아서
<div class="comments-field">
<label class="comments-field-label" for="comment_password"><?php echo __('Password', 'kboard-comments')?></label>
<input type="password" id="comment_password" name="password" value="" placeholder="<?php echo __('Password', 'kboard-comments')?>..." required>
</div>
아래의 코드로 바꾸었음
<input type="hidden" name="password" value="<?php echo uniqid()?>">
3. 댓글의 아이피를 관리자에게만 노출하도록 /wp-content/plugins/kboard-comments/skin/default/list.php 파일에
아래의 코드를 찾아서
<input type="hidden" name="member_uid" value="<?php echo $member_uid?>">
찾은 코드 밑에 아래의 코드를 추가함
<input type="hidden" name="comment_option_ip" value="<?php echo kboard_user_ip()?>">
/wp-content/plugins/kboard-comments/skin/default/list-template.php 파일에
아래의 코드를 찾아서
<div class="comments-list-create" itemprop="dateCreated"><?php echo date('Y-m-d H:i', strtotime($comment->created))?></div>
찾은 코드 밑에 아래의 코드를 추가함
<?php if($board->isAdmin()):?>
<div class="comments-list-ip"><?php echo $comment->option->ip?></div>
<?php endif?>
4. 대댓글에도 아이피를 관리자에게만 노출하도록 list-template.php 파일에
아래의 코드를 찾아서
<input type="hidden" name="member_uid" value="<?php echo $member_uid?>">
찾은 코드 밑에 아래의 코드를 추가함
<input type="hidden" name="comment_option_ip" value="<?php echo kboard_user_ip()?>">
5. 새 댓글 옆에 new 아이콘 표시하기 위해서 /wp-content/plugins/kboard-comments/skin/default/list-template.php 파일을 수정함.
아래 내용 출력 코드 위에 굵게 표시된 코드를 추가함.
<div class="comments-list-content" itemprop="description">
<?php if((time()-strtotime($comment->created)) <= (60*60*12)):?>NEW<?php endif?>
<?php echo nl2br($comment->content)?>
</div>
안녕하세요~^^
KBoard 플러그인에서 댓글 작성 시
"권한이 없습니다." 문구가 표시된다면
댓글 권한 관련해서 확인해보시겠어요?
워드프레스 관리자 -> KBoard -> 게시판 목록 -> 게시판 선택 -> 권한설정 페이지에서
댓글쓰기권한을 확인해보세요.
모든 사용자(로그인 사용자, 비로그인 사용자)가 댓글을 입력할 수 있게 하시려면
댓글쓰기권한을 제한없음으로 설정해보세요.
그래도 해결되지 않으신다면
KBoard 플러그인 댓글과 관련된 코드를 직접 추가하시거나 수정하신 게 있으시다면
에디터의 코드 스니펫 삽입 기능으로 올려주시겠어요?
고맙습니다.