비 회원의 비밀글에 답변이 가능하게 하려면?
본문
안녕하세요?
오늘도 좋은 하루 되십시오~^^)
비 회원제 사이트를 운영하고 있습니다.
그누4에서는 간단하던데 그누5로 오면서 좀 복잡해졌네요...ㅜ
댓글은 잘 되는데 답변은 안 되는군요~
다름이 아니라 비 회원의 비밀글에 답변이 가능하게 하려면
bbs/write.php에서 어떻게 수정을 해야 하는지요?
해당 부분을 주석처리 했더니 작동이 안 됩니다.
// 비밀글인지를 검사
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('비회원의 비밀글에는 답변이 불가합니다.');
}
그리고 bbs/board.php에서 수정을 할 내용이 있는지요?
// 자신의 글이거나 관리자라면 통과
if (($write['mb_id'] && $write['mb_id'] == $member['mb_id']) || $is_admin) {
;
} else {
// 비밀글이라면
if (strstr($write['wr_option'], "secret"))
{
// 회원이 비밀글을 올리고 관리자가 답변글을 올렸을 경우
// 회원이 관리자가 올린 답변글을 바로 볼 수 없던 오류를 수정
$is_owner = false;
if ($write['wr_reply'] && $member['mb_id'])
{
$sql = " select mb_id from {$write_table}
where wr_num = '{$write['wr_num']}'
and wr_reply = ''
and wr_is_comment = 0 ";
$row = sql_fetch($sql);
if ($row['mb_id'] == $member['mb_id'])
$is_owner = true;
}
$ss_name = 'ss_secret_'.$bo_table.'_'.$write['wr_num'];
if (!$is_owner)
{
//$ss_name = "ss_secret_{$bo_table}_{$wr_id}";
// 한번 읽은 게시물의 번호는 세션에 저장되어 있고 같은 게시물을 읽을 경우는 다시 비밀번호를 묻지 않습니다.
// 이 게시물이 저장된 게시물이 아니면서 관리자가 아니라면
//if ("$bo_table|$write['wr_num']" != get_session("ss_secret"))
if (!get_session($ss_name))
goto_url('./password.php?w=s&bo_table='.$bo_table.'&wr_id='.$wr_id.$qstr);
}
set_session($ss_name, TRUE);
}
}
답변 1
주석처리 하신 부분은
if (strstr($write['wr_option'], 'secret')) { 부분을 실행하고 } 닫혀 지는 부분을 처리 안하셔서 오류가 나서 페이지 오류가 발생한듯 보여 집니다.