천상재회님 다시한번 질문 드립니다? > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

천상재회님 다시한번 질문 드립니다? 정보

천상재회님 다시한번 질문 드립니다?

본문

죄송합니다ㅡ,.ㅡ
 
회원삭제 문제입니다?
 
천상재회님 저아래 소스를 그대로 복사해서
 
제 admin - admin.lib.php 에다 그대로 붙여넣기 했는데요?
 
Fatal error: Call to undefined function: get_member_level_select() in /home/uplove/public_html/love/adm/member_list.php on line 198
이런 에러가 발생했습니다?
 
라인 198 부분은..... global $g4; <=== 이거네요.
 
도대체 무언지 모르겠습니다?
 
////////////////////////////////////////////////////////////////////////////
 
adm/admin.lib.php의 40줄 부근
/*
 // 회원자료는 정보만 없앤 후 아이디는 보관하여 다른 사람이 사용하지 못하도록 함 : 061025
    if ($mb[mb_level] > 1) {
        $sql = " update $g4[member_table]
                    set mb_password = '',
                        mb_level = '1',
                        mb_email = '',
                        mb_homepage = '',
                        mb_password_q = '',
                        mb_password_a = '',
                        mb_tel = '',
                        mb_hp = '',
                        mb_zip1 = '',
                        mb_zip2 = '',
                        mb_addr1 = '',
                        mb_addr2 = '',
                        mb_birth = '',
                        mb_sex = '',
                        mb_signature = '',
                        mb_memo = '".date("Ymd",$g4['server_time'])." 삭제함\n\n$mb[mb_memo]',
                        mb_leave_date = '".date("Ymd",$g4['server_time'])."'
                  where mb_id = '$mb_id' ";
        //echo $sql; exit;
        sql_query($sql);
    }
  */ 
   
    // 회원 자료 삭제
    sql_query(" delete from $g4[member_table] where mb_id = '$mb_id' ");

    // 삭제된 자료를 또 삭제하면 완전 삭제함
    if ($mb[mb_nick] != '[삭제됨]')
    {
        // 다른 사람이 이 회원아이디를 사용하지 못하도록 아이디만 생성해 놓습니다.
        // 게시판에서 회원아이디는 삭제하지 않기 때문입니다.
        sql_query(" insert into $g4[member_table] set mb_id = '$mb_id', mb_name='$mb[mb_name]', mb_nick='[삭제됨]', mb_ip='$mb[mb_ip]', mb_datetime = '$g4[time_ymdhis]' ");
    }
   
    // 포인트 테이블에서 삭제
    sql_query(" delete from $g4[point_table] where mb_id = '$mb_id' ");
   
    // 그룹접근가능 삭제
    sql_query(" delete from $g4[group_member_table] where mb_id = '$mb_id' ");
   
    // 쪽지 삭제
    sql_query(" delete from $g4[memo_table] where me_recv_mb_id = '$mb_id' or me_send_mb_id = '$mb_id' ");
   
    // 스크랩 삭제
    sql_query(" delete from $g4[scrap_table] where mb_id = '$mb_id' ");
   
    // 관리권한 삭제
    sql_query(" delete from $g4[auth_table] where mb_id = '$mb_id' ");

    // 그룹관리자인 경우 그룹관리자를 공백으로
    sql_query(" update $g4[group_table] set gr_admin = '' where gr_admin = '$mb_id' ");

    // 게시판관리자인 경우 게시판관리자를 공백으로
    sql_query(" update $g4[board_table] set bo_admin = '' where bo_admin = '$mb_id' ");

    // 아이콘 삭제
    @unlink("$g4[path]/data/member/".substr($mb_id,0,2)."/$mb_id.gif");

댓글 전체

<?
if (!defined("_GNUBOARD_")) exit;

// 스킨경로를 얻는다
function get_skin_dir($skin, $len='')
{
    global $g4;

    $result_array = array();

    $dirname = "$g4[path]/skin/$skin/";
    $handle = opendir($dirname);
    while ($file = readdir($handle))
    {
        if($file == "."||$file == "..") continue;

        if (is_dir($dirname.$file)) $result_array[] = $file;
    }
    closedir($handle);
    sort($result_array);

    return $result_array;
}

// 회원 삭제
function member_delete($mb_id)
{
    global $config;
    global $g4;

    $sql = " select mb_name, mb_nick, mb_ip, mb_recommend, mb_memo, mb_level from $g4[member_table] where mb_id= '$mb_id' ";
    $mb = sql_fetch($sql);
    if ($mb[mb_recommend]) {
        $row = sql_fetch(" select count(*) as cnt from $g4[member_table] where mb_id = '$mb[mb_recommend]' ");
        if ($row[cnt])
            insert_point($mb[mb_recommend], $config[cf_recommend_point] * (-1), "{$mb_id}님의 회원자료 삭제로 인한 추천인 포인트 반환", '@member', $mb[mb_recommend], "{$mb_id} 추천인 삭제");
    }
/*
    // 회원자료는 정보만 없앤 후 아이디는 보관하여 다른 사람이 사용하지 못하도록 함 : 061025
    if ($mb[mb_level] > 1) {
        $sql = " update $g4[member_table]
                    set mb_password = '',
                        mb_level = '1',
                        mb_email = '',
                        mb_homepage = '',
                        mb_password_q = '',
                        mb_password_a = '',
                        mb_tel = '',
                        mb_hp = '',
                        mb_zip1 = '',
                        mb_zip2 = '',
                        mb_addr1 = '',
                        mb_addr2 = '',
                        mb_birth = '',
                        mb_sex = '',
                        mb_signature = '',
                        mb_memo = '".date("Ymd",$g4['server_time'])." 삭제함\n\n$mb[mb_memo]',
                        mb_leave_date = '".date("Ymd",$g4['server_time'])."'
                  where mb_id = '$mb_id' ";
        //echo $sql; exit;
        sql_query($sql);
    }
   
    */
    // 회원 자료 삭제
    sql_query(" delete from $g4[member_table] where mb_id = '$mb_id' ");

    // 삭제된 자료를 또 삭제하면 완전 삭제함
    if ($mb[mb_nick] != '[삭제됨]')
    {
        // 다른 사람이 이 회원아이디를 사용하지 못하도록 아이디만 생성해 놓습니다.
        // 게시판에서 회원아이디는 삭제하지 않기 때문입니다.
        sql_query(" insert into $g4[member_table] set mb_id = '$mb_id', mb_name='$mb[mb_name]', mb_nick='[삭제됨]', mb_ip='$mb[mb_ip]', mb_datetime = '$g4[time_ymdhis]' ");
    }
   
    // 포인트 테이블에서 삭제
    sql_query(" delete from $g4[point_table] where mb_id = '$mb_id' ");
   
    // 그룹접근가능 삭제
    sql_query(" delete from $g4[group_member_table] where mb_id = '$mb_id' ");
   
    // 쪽지 삭제
    sql_query(" delete from $g4[memo_table] where me_recv_mb_id = '$mb_id' or me_send_mb_id = '$mb_id' ");
   
    // 스크랩 삭제
    sql_query(" delete from $g4[scrap_table] where mb_id = '$mb_id' ");
   
    // 관리권한 삭제
    sql_query(" delete from $g4[auth_table] where mb_id = '$mb_id' ");

    // 그룹관리자인 경우 그룹관리자를 공백으로
    sql_query(" update $g4[group_table] set gr_admin = '' where gr_admin = '$mb_id' ");

    // 게시판관리자인 경우 게시판관리자를 공백으로
    sql_query(" update $g4[board_table] set bo_admin = '' where bo_admin = '$mb_id' ");

    // 아이콘 삭제
    @unlink("$g4[path]/data/member/".substr($mb_id,0,2)."/$mb_id.gif");
   
}


// 회원권한을 SELECT 형식으로 얻음
function get_member_level_select($name, $start_id=0, $end_id=10, $selected='', $event='')
{
    global $g4;
    $ddd = array(없음, 하나, 둘, 셋, 넷, 다섯, 여섯, 일곱, 여덟, 아홉, 열);
    $str = "<select name='$name' $event>";
    for ($i=$start_id; $i<=$end_id; $i++)
    {
        $str .= "<option value='$i'";
        if ($i == $selected)
            $str .= " selected";
        $str .= ">$ddd[$i]</option>";
    }
    $str .= "</select>";
    return $str;
}


// 회원아이디을 SELECT 형식으로 얻음
function get_member_id_select($name, $level, $selected='', $event='')
{
    global $g4;

    $sql = " select mb_id from $g4[member_table] where mb_level >= '$level' ";
    $result = sql_query($sql);
    $str = "<select name='$name' $event><option value=''>선택안함";
    for ($i=0; $row=sql_fetch_array($result); $i++)
    {
        $str .= "<option value='$row[mb_id]'";
        if ($row[mb_id] == $selected) $str .= " selected";
        $str .= ">$row[mb_id]</option>";
    }
    $str .= "</select>";
    return $str;
}

// 권한 검사
function auth_check($auth, $attr)
{
    global $is_admin;

    if ($is_admin == "super") return;

    if (!trim($auth))
        alert("이 메뉴에는 접근 권한이 없습니다.\\n\\n접근 권한은 최고관리자만 부여할 수 있습니다.");

    $attr = strtolower($attr);

    if (!strstr($auth, $attr)) {
        if ($attr == "r")
            alert("읽을 권한이 없습니다.");
        else if ($attr == "w")
            alert("입력, 추가, 생성, 수정 권한이 없습니다.");
        else if ($attr == "d")
            alert("삭제 권한이 없습니다.");
        else
            alert("속성이 잘못 되었습니다.");
    }
}


// 텍스트에리어 늘리기, 줄이기
function textarea_size($fld)
{
    global $g4;

    $size = 10;
    $s  = "<table cellpadding=2 cellspacing=0 border=0 width=100%><tr><td align=right>";
    $s .= "<span onclick=\"javascript:textarea_size(document.getElementById('$fld'), {$size})\"><img src='$g4[admin_path]/img/btn_up.gif' border=0 align=absmiddle></span> ";
    $s .= "<span onclick=\"javascript:textarea_size(document.getElementById('$fld'), ".$size*(-1).")\"><img src='$g4[admin_path]/img/btn_down.gif' border=0 align=absmiddle></span>";
    $s .= "&nbsp;&nbsp;</td></tr></table>";
    return $s;
}


// 작업아이콘 출력
function icon($act, $link="", $target="_parent")
{
    global $g4;

    $img = array("입력"=>"insert", "추가"=>"insert", "생성"=>"insert", "수정"=>"modify", "삭제"=>"delete", "이동"=>"move", "그룹"=>"move", "보기"=>"view", "미리보기"=>"view");
    $icon = "<img src='{$g4[admin_path]}/img/icon_{$img[$act]}.gif' border=0 align=absmiddle title='$act' width=22 height=21>";
    if ($link)
        //$s = "<a href=\"$link\" target=\"$target\">$icon</a>";
        $s = "<a href=\"$link\">$icon</a>";
    else
        $s = $icon;
    return $s;
}


// rm -rf 옵션 : exec(), system() 함수를 사용할 수 없는 서버 또는 win32용 대체
// www.php.net 참고 : pal at degerstrom dot com
function rm_rf($file)
{
    if (file_exists($file)) {
        @chmod($file,0777);
        if (is_dir($file)) {
            $handle = opendir($file);
            while($filename = readdir($handle)) {
                if ($filename != "." && $filename != "..")
                    rm_rf("$file/$filename");
            }
            closedir($handle);
            rmdir($file);
        } else
            unlink($file);
    }
}

function help($help="", $left=0, $top=0)
{
    global $g4;
    static $idx = 0;

    $idx++;

    $help = preg_replace("/\n/", "<br>", $help);
   
    $str  = "<img src='$g4[admin_path]/img/icon_help.gif' border=0 width=15 height=15 align=absmiddle onclick=\"help('help$idx', $left, $top);\" style='cursor:hand;'>";
    //$str .= "<div id='help$idx' style='position:absolute; top:0px; left:0px; display:none;'>";
    $str .= "<div id='help$idx' style='position:absolute; display:none;'>";
    $str .= "<div id='csshelp1'><div id='csshelp2'><div id='csshelp3'>$help</div></div></div>";
    $str .= "</div>";

    return $str;
}

function subtitle($title, $more="")
{
    global $g4;

    $s = "<table width=100% cellpadding=0 cellspacing=0><tr><td width=80% align=left><table border='0' cellpadding='0' cellspacing='1'><tr><td height='24'><img src='$g4[admin_path]/img/icon_title.gif' width=20 height=9> <font color='#525252'><b>$title</b></font> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr></table><table width=100% cellpadding=0 cellspacing=0><tr><td height=1></td></tr></table></td><td width=20% align=right>";
    if ($more)
        $s .= "<a href='$more'><img src='$g4[admin_path]/img/icon_more.gif' width='43' height='11' border=0 align=absmiddle></a>";
    $s .= "</td></tr></table>\n";
   
    return $s;
}

// 출력순서
function order_select($fld, $sel="")
{
    $s = "<select name='$fld'>";
    for ($i=1; $i<=100; $i++) {
        $s .= "<option value='$i' ";
        if ($sel) {
            if ($i == $sel) {
                $s .= "selected";
            }
        } else {
            if ($i == 50) {
                $s .= "selected";
            }
        }
        $s .= ">$i</option>";
    }
    $s .= "</select>\n";

    return $s;
}

// 접근 권한 검사
if (!$member['mb_id'])
{
    //alert("로그인 하십시오.", "$g4[bbs_path]/login.php?url=" . urlencode("$_SERVER[PHP_SELF]?w=$w&mb_id=$mb_id"));
    alert("로그인 하십시오.", "$g4[bbs_path]/login.php?url=" . urlencode("$_SERVER[PHP_SELF]?$_SERVER[QUERY_STRING]"));
}
else if ($is_admin != "super")
{
    $auth = array();
    $sql = " select au_menu, au_auth from $g4[auth_table] where mb_id = '$member[mb_id]' ";
    $result = sql_query($sql);
    for($i=0; $row=sql_fetch_array($result); $i++)
    {
        $auth[$row[au_menu]] = $row[au_auth];
    }

    if (!$i)
    {
        alert("최고관리자 또는 관리권한이 있는 회원만 접근 가능합니다.", $g4[path]);
    }
}
@ksort($auth);

// 가변 메뉴
unset($auth_menu);
unset($menu);
unset($amenu);
$tmp = dir($g4['admin_path']);
while ($entry = $tmp->read())
{
    //if (!preg_match("/^admin.menu([0-9]{3}).php/", $entry, $m))
    if (!preg_match("/^admin.menu([0-9]{3}).*\.php/", $entry, $m))
        continue;  // 파일명이 menu 으로 시작하지 않으면 무시한다.

    $amenu[$m[1]] = $entry;
    include_once($g4['admin_path']."/".$entry);
}
@ksort($amenu);

$qstr = "";
if (isset($sst)) $qstr .= "&sst=$sst";
if (isset($sod)) $qstr .= "&sod=$sod";
if (isset($sfl)) $qstr .= "&sfl=$sfl";
if (isset($stx)) $qstr .= "&stx=$stx";
if (isset($page)) $qstr .= "&page=$page";
//$qstr = "sst=$sst&sod=$sod&sfl=$sfl&stx=$stx&page=$page";
?>

분명히 리스트 상에서 삭제시 닉 부분에 삭제됨이 나오면 한번 더 삭제 하시라고 말씀드렸을텐데요...

소스가 바뀌면 해당 부분을 뒤짚어 씌우시던지 해야 합니다....
천상재회님 말씀대로 두번씩 삭제했습니다.

제가 파일을 뭐 빠뜨렸나 봅니다.

지금 천상재회님이 올리신 파일 그대로 했더니 삭제되네요.

신경 써 주셔서 고맙습니다^^

좋은 하루되세요~
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT