채택완료

내용없이 코멘트가 달립니다.

2026-06-28 (일) 12:50:43 193
수고하십니다.
관리자에서 몇글자 이상 남기게 설정하였지만 코멘트 내용없이 달리는 것들이 있습니다.

제가 내용없이 등록해 보면 댓글 : 필수 입력입니다. 라는 경고창이 뜨는데.

일부 회원들이 내용 없이 코멘트를 달더라고요.

어찌 해결 할 수 있는 방법이 있을까요?

phpadmin으로 들어가서 확인해봐도 내용이 비어 있더라구요.
 Version 5.6.22 입니다.

감사합니다.
|

답변 7개 / 댓글 8개

채택된 답변
+20 포인트
2026-06-29 (월) 20:48:41
Copy
<?php
if (!defined('_GNUBOARD_')) exit;

 

/*

 * 댓글 내용 서버단 필수 검사

 * 내용 없음, 공백, &nbsp;, 제로폭 문자만 있는 댓글 차단

 */

 

if (!function_exists('my_comment_utf8_strlen')) {

    function my_comment_utf8_strlen($str)

    {

        if (function_exists('mb_strlen')) {

            return mb_strlen($str, 'UTF-8');

        }

 

        preg_match_all('/./us', $str, $matches);

        return count($matches[0]);

    }

}

 

$w = isset($_POST['w']) ? trim($_POST['w']) : '';

 

if ($w === 'c' || $w === 'cu') {

    $comment_content = isset($_POST['wr_content']) ? $_POST['wr_content'] : '';

 

    // HTML 엔티티 변환

    $check_content = html_entity_decode($comment_content, ENT_QUOTES, 'UTF-8');

 

    // 태그 제거

    $check_content = strip_tags($check_content);

 

    // &nbsp;, 제로폭 문자 제거

    $check_content = preg_replace('/[\x{00A0}\x{200B}\x{200C}\x{200D}\x{FEFF}]/u', '', $check_content);

 

    // 공백 제거

    $check_content = preg_replace('/\s+/u', '', $check_content);

 

    if ($check_content === '') {

        alert('댓글 내용을 입력해 주세요.');

    }

 

    // 게시판 설정의 댓글 최소 글자수도 서버단에서 한 번 더 검사

    $comment_min = isset($board['bo_comment_min']) ? (int)$board['bo_comment_min'] : 0;

 

    if ($comment_min > 0) {

        $comment_len = my_comment_utf8_strlen($check_content);

 

        if ($comment_len < $comment_min) {

            alert('댓글은 '.$comment_min.'글자 이상 입력해 주세요.');

        }

    }

}

?>

업데이트쪽에 추가해 보세요

답변에 대한 댓글 1개

2026-06-30 (화) 10:04:52
한번 시도해 보겠습니다.
그 회원이 어떤식으로 접근을 하는지 모르겠는데 신기하네요. ㅎㅎ
엔터값과 스페이스값 넣고 댓글을 등록하면 경고창이 뜨는데 말이요.

답변 감사합니다.
2026-06-29 (월) 18:41:18
그냥 폼 내에서만 작업하신것 같은데 update 단에서도 검증하는 로직을 추가해보세요

답변에 대한 댓글 1개

2026-06-30 (화) 10:02:03
제가 무엇을 건들인 것은 없습니다. 답변 감사합니다.
띄어 쓰기 엔터에도 입력 되는지 우선 체크해 보세요
 

답변에 대한 댓글 1개

2026-06-30 (화) 10:00:50
띄어 쓰기와 엔터값으로는 댓글 : 필수 입력입니다. 경고창이 뜹니다.

자바스크립트와 php 댓글처리파일  둘다 빈 내용을 체크하지 못하는거라면 
댓글 저장시  내용의 post값을 분석해 보는것을 추천합니다. 

답변에 대한 댓글 1개

2026-06-30 (화) 09:59:37
넵. 답변 감사합니다.
클로드 AI 접속해 코멘트 스킨과 코어 파일 첨부하고 그럴 가능성이 있는지 물어보는 게 확실할 듯.

답변에 대한 댓글 1개

2026-06-30 (화) 09:59:23
답변 감사합니다.
일부 회원들이 내용 없이 코멘트를 달더라고요.
--일부 회원을 차단하세요 

내용 쓰고 코멘트를 다세요 규칙
규칙을 안지키는 사람이 회원 인가요?

답변에 대한 댓글 1개

2026-06-30 (화) 09:59:09
말씀데로 권한 1로 내려서 접근 못 하게 해두었습니다. 감사합니다.
우선은 순정 그누5.6.22 샤용에서도 그러는지 확인해 보시는 것이좋겠습니다.
댓글 스킨이나 관련 플러그인, 커스터마이징 여부에 따라 원인이 달라질수있어서요.
가능하시다면 빈 댓글이 등록된 시각의 웹서버/PHP 로그도 같이 확인해 보시면,
직접 요청인지 정상 화면을 통한 요청인지 구분하는 데 도움이 될 것입니다.
순정에서도 그런다면 버그 가능성이 있고(희박하지만), 아니라면 스킨이나 커스터마이징 쪽을 먼저 의심하셔야할 겁니다.

답변에 대한 댓글 2개

2026-06-30 (화) 09:58:43
매번 정성스러운 답변 정말 감사합니다.
감사합니다. (●'◡'●)

답변을 작성하려면 로그인이 필요합니다.