php파일로 게시글을 등록한 후, 답글을 달았을 때 관련 질문입니다. 채택완료
php파일로 게시글을 등록했는데, 그 때 사용한 mb_id 가 관리자 아이디인 admin입니다.
이 글에 관리자로 답글을 달면, 기존에 글에 적용된 wr_1,wr_2 같은 기타 필드의 값이 다 날아갑니다.
그래서 원인을 찾아보니
</p><p>else if ($w == "u")
{
if ($member[mb_id])
{
// 자신의 글이라면
if ($member[mb_id] == $wr[mb_id])
{
$mb_id = $member[mb_id];
$wr_name = $board[bo_use_name] ? $member[mb_name] : $member[mb_nick];
$wr_email = $member[mb_email];
$wr_homepage = $member[mb_homepage];
}
else
{
$mb_id = $wr[mb_id];
$wr_name = $wr[wr_name];
$wr_email = $wr[wr_email];
$wr_homepage = $wr[wr_homepage];
}
}
else
{
$mb_id = "";
// 비회원의 경우 이름이 누락되는 경우가 있음
//if (!trim($wr_name)) alert("이름은 필히 입력하셔야 합니다.");
}
$sql_password = $wr_password ? " , wr_password = '".sql_password($wr_password)."' " : "";
$sql_ip = "";
if (!$is_admin)
$sql_ip = " , wr_ip = '$_SERVER[REMOTE_ADDR]' ";
$sql = " update $write_table
set ca_name = '$ca_name',
wr_option = '$html,$secret,$mail',
wr_subject = '$wr_subject',
wr_content = '$wr_content',
wr_link1 = '$wr_link1',
wr_link2 = '$wr_link2',
mb_id = '$mb_id',
wr_name = '$wr_name',
wr_email = '$wr_email',
wr_homepage = '$wr_homepage',
wr_1 = '$wr_1',
wr_2 = '$wr_2',
wr_3 = '$wr_3',
wr_4 = '$wr_4',
wr_5 = '$wr_5',
wr_6 = '$wr_6',
wr_7 = '$wr_7',
wr_8 = '$wr_8',
wr_9 = '$wr_9',
wr_10= '$wr_10'
$sql_ip
$sql_password
where wr_id = '$wr[wr_id]' ";
sql_query($sql);
// 분류가 수정되는 경우 해당되는 코멘트의 분류명도 모두 수정함
// 코멘트의 분류를 수정하지 않으면 검색이 제대로 되지 않음
$sql = " update $write_table set ca_name = '$ca_name' where wr_parent = '$wr[wr_id]' ";
sql_query($sql);
if ($notice)
{
//if (!preg_match("/[^0-9]{0,1}{$wr_id}[\r]{0,1}/",$board[bo_notice]))
if (!in_array((int)$wr_id, $notice_array))
{
$bo_notice = $wr_id . '\n' . $board[bo_notice];
sql_query(" update $g4[board_table] set bo_notice = '$bo_notice' where bo_table = '$bo_table' ");
}
}
else
{
$bo_notice = '';
for ($i=0; $i<count($notice_array); $i++)
if ((int)$wr_id != (int)$notice_array[$i])
$bo_notice .= $notice_array[$i] . '\n';
$bo_notice = trim($bo_notice);
//$bo_notice = preg_replace("/^".$wr_id."[\n]?$/m", "", $board[bo_notice]);
sql_query(" update $g4[board_table] set bo_notice = '$bo_notice' where bo_table = '$bo_table' ");
}
} </p><p>
이 구문에서 체크를 해서, 글이 아예 덮어씌워지는 거 같은데
이럴 경우, 해당 테이블만 따로 체크를 해서
$wr_name = $board[bo_use_name] ? $member[mb_name] : $member[mb_nick];
이 부분이라도 기존의 wr_name을 사용하게 하려면 어떻게 해야 될지
다른 분들의 조언 부탁드립니다.
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
11년 전
phpmyadmin으로 해당게시판의 wr_id, wr_num, wr_parent 의 번호들이 제대로 입력되어 있는지 확인하세요.
아니면 다른 게시판의 wr_id, wr_num, wr_parent 비교해 보세요.
wr_id, wr_num, wr_parent 가 잘못 입력되거나 엉켜서 그런 오류가 나는듯...
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
b
bismute
11년 전
b
bismute
11년 전
저는 이 부분때문에 이상하다고 보여진 건데
[code]
else if ($w == "u")
{
if ($member[mb_id])
{
// 자신의 글이라면
if ($member[mb_id] == $wr[mb_id])
{
$mb_id = $member[mb_id];
$wr_name = $board[bo_use_name] ? $member[mb_name] : $member[mb_nick];
$wr_email = $member[mb_email];
$wr_homepage = $member[mb_homepage];
}
[/code]
이 부분보단 다른 부분을 봐야 되는 게 맞을까요?
[code]
else if ($w == "u")
{
if ($member[mb_id])
{
// 자신의 글이라면
if ($member[mb_id] == $wr[mb_id])
{
$mb_id = $member[mb_id];
$wr_name = $board[bo_use_name] ? $member[mb_name] : $member[mb_nick];
$wr_email = $member[mb_email];
$wr_homepage = $member[mb_homepage];
}
[/code]
이 부분보단 다른 부분을 봐야 되는 게 맞을까요?
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
채택
채택
채택
채택
채택
채택
답변대기
채택
채택
채택
답변대기
채택
채택
답변대기
채택
채택
채택
채택
답글만 쓰면, 어질러지는 걸 봐서는 말씀대로 엉켜서 그럴 가능성이 더 높겠군요!
감사합니다!