채택완료

아무리 해도 안되어서 질문 드립니다....

스마트에디터에서 내용을 안써도 넘어가게 하기 위해 소스를 봤더니
write_update.php 에 

Copy
$wr_content = '';
if (isset($_POST['wr_content'])) {
    $wr_content = substr(trim($_POST['wr_content']),0,65536);
    $wr_content = preg_replace("#[\\\]+$#", "", $wr_content);
    if (function_exists('normalize_utf8_string')) {
        $wr_content = normalize_utf8_string($wr_content);
    }
}
if ($wr_content == '') {
    $msg[] = '<strong>내용</strong>을 입력하세요.';
}


이런 부분이 있네요 당연히 
$msg[] = '<strong>내용</strong>을 입력하세요.';
만 주석처리하면 넘어갈줄 알았더니

페이지 자체가 에러가 나네요

어떻게 하면 이 부분을 본문내용 없어도 그냥 통과시킬 수 있을까요?

|

답변 7개 / 댓글 1개

채택된 답변
+20 포인트
$wr_content = '';

if (isset($_POST['wr_content'])) {
    $wr_content = trim($_POST['wr_content']);

    // UTF-8 안전 처리
    if (function_exists('mb_substr')) {
        $wr_content = mb_substr($wr_content, 0, 65536, 'UTF-8');
    } else {
        $wr_content = substr($wr_content, 0, 65536);
    }

    // 불필요한 역슬래시 제거
    $wr_content = rtrim($wr_content, "\\");

    // UTF-8 정규화 (존재할 때만)
    if (function_exists('normalize_utf8_string')) {
        $wr_content = normalize_utf8_string($wr_content);
    }
}

if ($wr_content === '') {
    $msg[] = '<strong>내용</strong>을 입력하세요.';
}
 
선생님 특정한 게시판에서만 내용부분이 필요없다면 해당 스킨를 따로 관리하시는게 낮지않나요?
하여 그냥 공용코어를 건들지말고 write.skin.php 하단에 스크립트 보시면 내용관련부분만 지워버리던가 폼버튼처리 이버튼함수를 모두 지우고 다음과 같이해보세요 
function fwrite_submit(f) { if (f.wr_content.value.trim() === "") { f.wr_content.value = "내용없음"; } return true; }
그리고 내용입력부분에서
<div class="write_div"style="display:none"> 이렇게 처리하면됩니다. 뷰페이지도 none 똑같습니다.
만약
코어에서 해결을 하고자한다면
선생님 제시한 부분을 모두다 지우시고
if ($wr_content == '') { $wr_content = ' '; } 이렇게하시면됩니다.

 

if ($wr_content == '') {
    $msg[] = '<strong>내용</strong>을 입력하세요.';
}
 

php 7.x 이상이시면 위 코드 바로 위에 아래 코드 넣어보세요.
$wr_content = $wr_content ?? '&nbsp; ';
 

테스트는 안 해봤습니다.

// if ($wr_content == '') {
//     $msg[] = '<strong>내용</strong>을 입력하세요.';
// }
 

 

이렇게 주석처리 하시거나, 

if ($wr_content == '') {
    $wr_content = ' '; // 공백 1칸
}

이렇게 변경하세요~

https://sir.kr/jobs/requests
위 가시면 10~20만원 정도면 해주실문 있씁니다
돈 쓰기 머하시면
https://sir.kr/boards/developers_pr/13
저의 연락처가 있씁니다
연락주시면 같이 고민해드릴게요

참고로 
위작업을 하려면
skin/board/게시판스킨/write.skin.php
 function fwrite_submit(f)
    {
이안에 내용을 수정 해야하고
}
bbs/write_update.php

$wr_content = '';
if (isset($_POST['wr_content'])) {
    $wr_content = substr(trim($_POST['wr_content']),0,65536);
    $wr_content = preg_replace("#[\\\]+$#", "", $wr_content);
    if (function_exists('normalize_utf8_string')) {
        $wr_content = normalize_utf8_string($wr_content);
    }
}
if ($wr_content == '') {
    $msg[] = '<strong>내용</strong>을 입력하세요.';
}
내용을 수정 하면 되지만 
다른 게시판도 영향을 미치기때문에
조건문으로 하고자 하는 게시판만 내용변수 즉 
$wr_content 의 내용을 변경 하거나 채크 안하도록 
수정 해야합니다
 
그렇게 하지마시고

해당 스킨에 write_update.head.skin.php 하나 만드시고

$wr_content = empty($wr_content) ? ' ' : $wr_content;

이거 한줄 넣어보세요.
본문이 비어있다면 ' ' 공백을 하나 넣는겁니다..
주석처리는 if 문 자체를 해주는게 맞을거고요.
그래도 $msg 배열 입력부분 주석처리 정상으로 하셨다면 결과는 동일할 수 있는데,
에러 메시지는 어떤 에러메시지가 나던가요?
 

답변에 대한 댓글 1개

if ($wr_content == '') {
   $wr_content = ' ';
}
이렇게 수정해도 되곘네요.

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