수고하십니다.
관리자에서 몇글자 이상 남기게 설정하였지만 코멘트 내용없이 달리는 것들이 있습니다.
제가 내용없이 등록해 보면 댓글 : 필수 입력입니다. 라는 경고창이 뜨는데.
일부 회원들이 내용 없이 코멘트를 달더라고요.
어찌 해결 할 수 있는 방법이 있을까요?
phpadmin으로 들어가서 확인해봐도 내용이 비어 있더라구요.
Version 5.6.22 입니다.
감사합니다.
관리자에서 몇글자 이상 남기게 설정하였지만 코멘트 내용없이 달리는 것들이 있습니다.
제가 내용없이 등록해 보면 댓글 : 필수 입력입니다. 라는 경고창이 뜨는데.
일부 회원들이 내용 없이 코멘트를 달더라고요.
어찌 해결 할 수 있는 방법이 있을까요?
phpadmin으로 들어가서 확인해봐도 내용이 비어 있더라구요.
Version 5.6.22 입니다.
감사합니다.
|
답변 7개 / 댓글 8개
채택된 답변
+20 포인트
Copy
<?php
if (!defined('_GNUBOARD_')) exit;
/*
* 댓글 내용 서버단 필수 검사
* 내용 없음, 공백, , 제로폭 문자만 있는 댓글 차단
*/
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);
// , 제로폭 문자 제거
$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.'글자 이상 입력해 주세요.');
}
}
}
?>
업데이트쪽에 추가해 보세요
그냥 폼 내에서만 작업하신것 같은데 update 단에서도 검증하는 로직을 추가해보세요
자바스크립트와 php 댓글처리파일 둘다 빈 내용을 체크하지 못하는거라면
댓글 저장시 내용의 post값을 분석해 보는것을 추천합니다.
클로드 AI 접속해 코멘트 스킨과 코어 파일 첨부하고 그럴 가능성이 있는지 물어보는 게 확실할 듯.
일부 회원들이 내용 없이 코멘트를 달더라고요.
--일부 회원을 차단하세요
내용 쓰고 코멘트를 다세요 규칙
규칙을 안지키는 사람이 회원 인가요?
--일부 회원을 차단하세요
내용 쓰고 코멘트를 다세요 규칙
규칙을 안지키는 사람이 회원 인가요?
우선은 순정 그누5.6.22 샤용에서도 그러는지 확인해 보시는 것이좋겠습니다.
댓글 스킨이나 관련 플러그인, 커스터마이징 여부에 따라 원인이 달라질수있어서요.
가능하시다면 빈 댓글이 등록된 시각의 웹서버/PHP 로그도 같이 확인해 보시면,
직접 요청인지 정상 화면을 통한 요청인지 구분하는 데 도움이 될 것입니다.
순정에서도 그런다면 버그 가능성이 있고(희박하지만), 아니라면 스킨이나 커스터마이징 쪽을 먼저 의심하셔야할 겁니다.
댓글 스킨이나 관련 플러그인, 커스터마이징 여부에 따라 원인이 달라질수있어서요.
가능하시다면 빈 댓글이 등록된 시각의 웹서버/PHP 로그도 같이 확인해 보시면,
직접 요청인지 정상 화면을 통한 요청인지 구분하는 데 도움이 될 것입니다.
순정에서도 그런다면 버그 가능성이 있고(희박하지만), 아니라면 스킨이나 커스터마이징 쪽을 먼저 의심하셔야할 겁니다.
답변을 작성하려면 로그인이 필요합니다.
그 회원이 어떤식으로 접근을 하는지 모르겠는데 신기하네요. ㅎㅎ
엔터값과 스페이스값 넣고 댓글을 등록하면 경고창이 뜨는데 말이요.
답변 감사합니다.