php파일로 게시글을 등록한 후, 답글을 달았을 때 관련 질문입니다.
php파일로 게시글을 등록했는데, 그 때 사용한 mb_id 가 관리자 아이디인 admin입니다.
이 글에 관리자로 답글을 달면, 기존에 글에 적용된 wr_1,wr_2 같은 기타 필드의 값이 다 날아갑니다.
그래서 원인을 찾아보니
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' "); }}
이 구문에서 체크를 해서, 글이 아예 덮어씌워지는 거 같은데
이럴 경우, 해당 테이블만 따로 체크를 해서
$wr_name = $board[bo_use_name] ? $member[mb_name] : $member[mb_nick];
이 부분이라도 기존의 wr_name을 사용하게 하려면 어떻게 해야 될지
다른 분들의 조언 부탁드립니다.
답변 1개 / 댓글 2개
phpmyadmin으로 해당게시판의 wr_id, wr_num, wr_parent 의 번호들이 제대로 입력되어 있는지 확인하세요.
아니면 다른 게시판의 wr_id, wr_num, wr_parent 비교해 보세요.
wr_id, wr_num, wr_parent 가 잘못 입력되거나 엉켜서 그런 오류가 나는듯...
답변에 대한 댓글 2개
[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]
이 부분보단 다른 부분을 봐야 되는 게 맞을까요?
답변을 작성하려면 로그인이 필요합니다.
답글만 쓰면, 어질러지는 걸 봐서는 말씀대로 엉켜서 그럴 가능성이 더 높겠군요!
감사합니다!