테스트 사이트 - 개발 중인 베타 버전입니다

그누보드 글쓰기(비밀글)권한 질문드립니다. 채택완료

클래스는영원히 8년 전 조회 4,063

http://m.samjukgas.co.kr/gb/bbs/write.php?bo_table=free">http://m.samjukgas.co.kr/gb/bbs/write.php?bo_table=free

안녕하세요

그누보드 글쓰기(비밀글)권한 질문드립니다.

다름이아니라 오픈게시판이며, pc에서는 등록이 잘되는데 모바일에서 등록 시

비밀글 미사용 게시판 이므로 비밀글로 등록할 수 없습니다.

이런 메시지가 도출되고있습니다.

소스 그대로 서버이전작업을 하였는데 왜 이러한 현상이 모바일 자유게시판에서만 일어나는지 모르겠습니다.

고수님들께서 한 수 알려주시면 감사드리겠습니다.

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

답변 5개

채택된 답변
+20 포인트
해피정
8년 전

게시판 설정을 살펴보세요.

무조건 비밀글 체크가 된것은 아닌지...라고 적다가... 

원글을 보니 PC에서는 비밀글 없이 작성이 가능하다고 하셨죠?

방금 PC와 모바일 글작성을 해봤습니다.

모바일 스킨에서  write.skin.php 와 write_update.skin.php  등의 파일 내용을 함 보고 싶네요.

http://samjukgas.co.kr/gb/bbs/write.php?bo_table=free&device=mobile">http://samjukgas.co.kr/gb/bbs/write.php?bo_table=free&device=mobile

이렇게해서 작동이 안되는것으로 보니...

모바일일때 뭔가 처리를 다르게 하고 있는것 같습니다.

단순 스킨의 문제가 아닌거 같은디요...

그누보드를 2개 설치해서 운영하는 것은 아닌가요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

클래스는영원히
8년 전
답변 감사드립니다.
2개가 설치되어있는지는 모르겠습니다만 그럴수도있겠다는 생각이 듭니다.
(모바일 m폴더에 gb폴더가 하나 더 있습니다)
혹시 몰라 php소스를 올려드립니다

m/gb/bbs/write.php


$tmp_point = isset($member['mb_point']) ? $member['mb_point'] : 0;
if ($tmp_point + $board['bo_write_point'] < 0 && !$is_admin)
alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 글답변('.number_format($board['bo_comment_point']).')가 불가합니다.\\n\\n포인트를 적립하신 후 다시 글답변 해 주십시오.');

//if (preg_match("/[^0-9]{0,1}{$wr_id}[\r]{0,1}/",$board['bo_notice']))
if (in_array((int)$wr_id, $notice_array))
alert('공지에는 답변 할 수 없습니다.');

//----------
// 4.06.13 : 비밀글을 타인이 열람할 수 있는 오류 수정 (헐랭이, 플록님께서 알려주셨습니다.)
// 코멘트에는 원글의 답변이 불가하므로
if ($write['wr_is_comment'])
alert('정상적인 접근이 아닙니다.');

// 비밀글인지를 검사
/*
if (strstr($write['wr_option'], 'secret')) {
if ($write['mb_id']) {
// 회원의 경우는 해당 글쓴 회원 및 관리자
if (!($write['mb_id'] == $member['mb_id'] || $is_admin))
alert('비밀글에는 자신 또는 관리자만 답변이 가능합니다.');
} else {
// 비회원의 경우는 비밀글에 답변이 불가함
if (!$is_admin)
alert('비회원의 비밀글에는 답변이 불가합니다.');
}
}
*/
//----------

// 게시글 배열 참조
$reply_array = &$write;

// 최대 답변은 테이블에 잡아놓은 wr_reply 사이즈만큼만 가능합니다.
if (strlen($reply_array['wr_reply']) == 10)
alert('더 이상 답변하실 수 없습니다.\\n\\n답변은 10단계 까지만 가능합니다.');

비밀글 부분이 //처리되어있었습니다.
클래스는영원히
8년 전
m/gb/bbs/write_update.php 비밀글 소스 부분입니다.

if ($w == 'r') {
// 답변의 원글이 비밀글이라면 비밀번호는 원글과 동일하게 넣는다.
if ($secret){
$wr_password = $wr['wr_password'];
echo $wr_password;

}
$wr_id = $wr_id . $reply;
$wr_num = $write['wr_num'];
$wr_reply = $reply;
} else {
$wr_num = get_next_num($write_table);
$wr_reply = '';
}




// 게시판그룹접근사용을 하지 않아야 하고 비회원 글읽기가 가능해야 하며 비밀글이 아니어야 합니다.
if (!$group['gr_use_access'] && $board['bo_read_level'] < 2 && !$secret) {
naver_syndi_ping($bo_table, $wr_id);



// 비밀글이라면 세션에 비밀글의 아이디를 저장한다. 자신의 글은 다시 비밀번호를 묻지 않기 위함
if ($secret)
set_session("ss_secret_{$bo_table}_{$wr_num}", TRUE);



// 외부에서 글을 등록할 수 있는 버그가 존재하므로 비밀글은 사용일 경우에만 가능해야 함
if (!$is_admin && !$board['bo_use_secret'] && $secret) {
alert('비밀글 미사용 게시판 이므로 비밀글로 등록할 수 없습니다.');
}



// 외부에서 글을 등록할 수 있는 버그가 존재하므로 비밀글 무조건 사용일때는 관리자를 제외(공지)하고 무조건 비밀글로 등록
if (!$is_admin && $board['bo_use_secret'] == 2) {
$secret = 'secret';
}



확인 부탁드립니다.
감사합니다.

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

해피정
8년 전

아래 사항을 순정 그누보드에 맞게 변경하세요~~~

1.

m/gb/bbs/write.php  에서

비밀글 여부 체크하는 로직을 왜 주석으로 막은건가요?

2. m/gb/bbs/write_update.php 에서

2-1. 

echo $wr_password;   를 노출시키는 이유가 뭔가요?

2-2. 

// 외부에서 글을 등록할 수 있는 버그가 존재하므로 비밀글은 사용일 경우에만 가능해야 함 

if (!$is_admin && !$board['bo_use_secret'] && $secret) { 

의 경우 원본 그누보드5에서는 아래와 같습니다.

// 외부에서 글을 등록할 수 있는 버그가 존재하므로 비밀글은 사용일 경우에만 가능해야 함

if (!$is_admin && !$board['bo_use_secret'] && (stripos($_POST['html'], 'secret') !== false || stripos($_POST['secret'], 'secret') !== false || stripos($_POST['mail'], 'secret') !== false)) {

로그인 후 평가할 수 있습니다

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

해피정
8년 전

아래내용이 왜 원본과 다른가를 살펴보세요.

모바일에 대응시키려고 코드를 비틀어 놓은것은 아닌가 싶네요.

순정 그누보드의 경우엔 둘다 대응이 되어야 하는데...

pc 따로 모바일 따로 프로그램이 존재하는것이 아닐까 생각됩니다.

서버에 접속해서  심볼릭링크 가 사용된것은 아닌지 ... 그외 여러가지 변수를 살펴봐야 할듯하네요

1.

m/gb/bbs/write.php  에서

비밀글 여부 체크하는 로직을 왜 주석으로 막은건가요?

2. m/gb/bbs/write_update.php 에서

2-1. 

echo $wr_password;   를 노출시키는 이유가 뭔가요?

2-2. 

// 외부에서 글을 등록할 수 있는 버그가 존재하므로 비밀글은 사용일 경우에만 가능해야 함 

if (!$is_admin && !$board['bo_use_secret'] && $secret) { 

의 경우 원본 그누보드5에서는 아래와 같습니다.

// 외부에서 글을 등록할 수 있는 버그가 존재하므로 비밀글은 사용일 경우에만 가능해야 함

if (!$is_admin && !$board['bo_use_secret'] && (stripos($_POST['html'], 'secret') !== false || stripos($_POST['secret'], 'secret') !== false || stripos($_POST['mail'], 'secret') !== false)) {

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

클래스는영원히
8년 전
답변 감사드립니다!
현재 이미지는 심볼릭링크가 사용되어있습니다,
이 부분때문에 그럴 수 있는건가요?

비밀글 여부 체크하는 로직을 왜 주석으로 막은건지는 잘 모르겠습니다 ㅜㅜ
근데 현재 구매신청게시판은 무조건 비밀글로 체크와 상관없이 비밀글로 되며
다른 게시판은 이와 반대로 체크와 상관없이 무조건 공개글입니다.

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

해피정
8년 전

모바일 스킨이 비밀글 고정으로 되어 있네요.

type="hidden" name="secret" value="secret">   이렇게요

gb/mobile/skin/board/basic/write.skin.php 내용을 살펴보세요

내용중에 위의 코드가 보이면 그것을 삭제 또는 주석으로 작동 안되게 변경하세요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

클래스는영원히
8년 전
안녕하세요




if ($is_secret) {
if ($is_admin || $is_secret==1) {
//$option .= PHP_EOL.'<input type="checkbox" id="secret" name="secret" value="secret" '.$secret_checked.'>'.PHP_EOL.'<label for="secret">비밀글</label>';
} else {
//$option_hidden .= '<input type="hidden" name="secret" value="secret">';
}
}







구매신청게시판

http://m.samjukgas.co.kr/gb/bbs/board.php?bo_table=application

이 게시판은 무조건 비밀글이라 이렇게 소스가 되어있는데

이 부분을 // 전부 주석처리하여도 똑같이 비밀글게시판이라 글쓰기가 안된다합니다.

혹시 다른 방법이 있을까요?ㅠㅠ

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

y
8년 전

모바일 게시판에서는 비밀글 고정으로 되어있습니다. 

모바일 스킨파일을 수정하세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

클래스는영원히
8년 전
답변 감사드립니다.
관리자 페이지에서 둘 다 공개로 설정을 바꿔도 먹히지를 않습니다..
혹시 관리자에서 바꾸는 방법이 따로 있을까요?

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

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

로그인