삭제는 gbdelete.php, 수정은? > 그누3질답

그누3질답

삭제는 gbdelete.php, 수정은? 정보

그누보드 삭제는 gbdelete.php, 수정은?

본문

삭제에 대한 여러가지 명령들은 gbdelete.php에 있다는 것을 알았습니다.
여러 고수님들이 삭제에 대한 도움을 주셔서 고칠 수 있었습니다.

그런데 글수정의 명령은 어느 파일에 있는지 모르겠습니다.

gbupdate.php인지 gbform.php인지 아무리 소스를 봐도 모르겠습니다. ㅠ.ㅠ

글수정에서 누구나 수정 가능하게 할려면 어디를 만져야 하는지 가르쳐주세요
  • 복사

댓글 전체

여러개 파일 수정하면 넘 힘들죠
한방에 하는 방법 찾아습니다.

lib/gnuboard.lib.php  <<==요눔 수정하세요.

// 관리자인가?
function is_admin($mb_id)
{
    global $default, $cfg, $group, $board;

    $is = '';
    if ($mb_id) {
        if ($default[de_admin] == $mb_id) {
            $is = 'default';
        } else if ($group[gr_admin] == $mb_id) {
            $is = 'group';
        } else if ($board[bo_admin] == $mb_id) {
            $is = 'board';
        }
========================================추가부분
      else {
          $oboard =  '원하는 TABLE';
          if($bo_table == '$oboard'){
          $is = $mb_id;
        }
===================================추가끝..
또한 수정권한을 주기위한 gbform.php에서 보셔야할부분은

87라인에 있는

if (!$member[mb_id] || ($is_admin && $w == 'u' && $member[mb_id] != $write[mb_id])) {
    $is_name = true;
    $is_passwd = true;

    if ($default[de_use_email]) {
        $is_email = true;
    }

    if ($default[de_use_homepage]) {
        $is_homepage = true;
    }
}

부분과  140라인부터 있는

} else if ($w == 'u') {

    $passwd_required = "";

    if (!$is_admin) {
        if (!($member[mb_id] && $member[mb_id] == $write[mb_id])) {
            $wr_passwd = sql_password($wr_passwd);
            if ($wr_passwd != $write[wr_passwd]) {
                alert("비밀번호가 틀립니다.");
            }
        }
    }

부분에 비밀번호 체크부분이 있습니다.
아하 방금 생각난건데 간단하게 해결하는 방법 생각 나씀니다.

$oboard =  '원하는 TABLE';
if($bo_table == '$oboard')  {
$is_admin = $member[mb_id];
}

이런식으로 하면 다 패스될듯.. ㅋㅋㅋㅋㅋ

꽁수 짱이죠 ^_^
gbupdate.php 파일을 수정하시면 모든 업데이트에 대해서 수정이 됩니다.

쓰기와 수정이 동시에 이루어집니다.

이때 구분하는 변수는 $w 이며..
if ($w == '' || $w == 'u') {
    if ($member[mb_level] < $board[bo_write_level]) alert('글을 쓸 권한이 없습니다.');
} else if ($w == 'r') {
    if ($member[mb_level] < $board[bo_reply_level]) alert('글을 답변할 권한이 없습니다.');
} else if ($w == 'c') {
    if ($member[mb_level] < $board[bo_comment_level]) alert('코멘트를 쓸 권한이 없습니다.');
} else {
    alert('w 값이 제대로 넘어오지 않았습니다.');
}

변수의 값이 각각 u,r,c에 의해서 구분되어집니다.

하단에 보시면 282라인부터 다음과 같은 코드가 있습니다.
} else if ($w == 'u') {

    if ($member[mb_id]) {
        // 자신의 글이라면
        if ($member[mb_id] == $wr[mb_id]) {
            $mb_id = $member[mb_id];
            $wr_name = $member[mb_name];
            $wr_email = $member[mb_email];
            $wr_homepage = $member[mb_homepage];
        } else {
            $mb_id = $wr[mb_id];
        }
    } else {
        $mb_id = '';
    }
이곳이 핵심인듯 싶네요..

또한 삭제와 마찬가지로 수정역시 하나의 코드로 끝나는것이 아니라..

이파일을 수정하였을때 다른 파일과 연계성이 무너질수 있으므로 주의하셔야 할것 같습니다. :)
수정할때.

gbform.php  ==>> 수정폼 들어가기위한 레벨 체크 부분

gbupdate.php ==>> 수정폼에 디비에 저장해주는 부분

두군데 다 수정해야하죠..
$w 값이 u면 수정 '' 없다면 쓰기  r답변인가요  ㅋㅋㅋ 아무튼 이런식으로 되어 있죠.

$w == 'u'  는 수정이라는 뜻이죠.


이런부분으로 시작되는 부분을 다 수정하면 되죠.
© SIRSOFT
현재 페이지 제일 처음으로