아이디,별명 금지단어 강화 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

아이디,별명 금지단어 강화 정보

아이디,별명 금지단어 강화

본문

관리자 페이지에 설명은 "입력된 단어가 포함된 내용은 회원아이디, 별명으로 사용할 수 없습니다." 라고 되어 있지만
실제 그누보드에서는 '단어가 포함된 내용' 이 아니라 '단어와 일치한 내용' 만 걸러집니다.

다음과 같이 수정하시면 해결이 됩니다.


1) bbs/register_form_update.php 파일
----

수정전
    if (preg_match("/[\,]?{$mb_id}/i", $config[cf_prohibit_id]))
        alert("\'$mb_id\' 은(는) 예약어로 사용하실 수 없는 회원아이디입니다.");

    if (preg_match("/[\,]?{$mb_nick}/i", $config[cf_prohibit_id]))
        alert("\'$mb_nick\' 은(는) 예약어로 사용하실 수 없는 별명입니다.");

수정후
    $wrd = explode(",", $config[cf_prohibit_id]);
    for ($i=0, $m=count($wrd); $i<$m; $i++) {
        $tmp = trim($wrd[$i]);
        if (preg_match("/{$tmp}/i", $mb_id))
            alert("\'$mb_id\' 은(는) 예약어로 사용하실 수 없는 회원아이디입니다.");
        if (preg_match("/{$tmp}/i", $mb_nick))
            alert("\'$mb_nick\' 은(는) 예약어로 사용하실 수 없는 별명입니다.");
    }

2) skin/member/사용중인회원스킨/ajax_mb_id_check.php 파일
----

수정전
    $row = sql_fetch(" select count(*) as cnt from $g4[member_table] where mb_id = '$reg_mb_id' ");
    if ($row[cnt]) {
        echo "130"; // 이미 존재하는 회원아이디
    } else {
        if (preg_match("/[\,]?{$reg_mb_id}/i", $config[cf_prohibit_id]))
            echo "140"; // 예약어로 금지된 회원아이디
        else
            echo "000"; // 정상
    } 

수정후
    $row = sql_fetch(" select count(*) as cnt from $g4[member_table] where mb_id = '$reg_mb_id' ");
    if ($row[cnt]) {
        echo "130"; // 이미 존재하는 회원아이디
    } else {
        $wrd = explode(",", $config[cf_prohibit_id]);
        for ($i=0, $m=count($wrd); $i<$m; $i++) {
            $tmp = trim($wrd[$i]);
            if (preg_match("/{$tmp}/i", $reg_mb_id)) {
                echo "140"; exit;
            }
        }
        echo "000";
    }

3) skin/member/사용중인회원스킨/ajax_mb_nick_check.php 파일
----

수정전
    $row = sql_fetch(" select count(*) as cnt from $g4[member_table] where mb_nick = '$reg_mb_nick' ");
    if ($row[cnt]) {
        echo "130"; // 이미 존재하는 별명
    } else {
        echo "000"; // 정상
    }

수정후
    $row = sql_fetch(" select count(*) as cnt from $g4[member_table] where mb_nick = '$reg_mb_nick' ");
    if ($row[cnt]) {
        echo "130"; // 이미 존재하는 별명
    } else {
        $wrd = explode(",", $config[cf_prohibit_id]);
        for ($i=0, $m=count($wrd); $i<$m; $i++) {
            $tmp = trim($wrd[$i]);
            if (preg_match("/{$tmp}/i", $reg_mb_nick)) {
                echo "140"; exit;
            }
        }
        echo "000";
    }

4) skin/member/사용중인회원스킨/ajax_register_form.jquery.js 파일 case '140' 라인 추가
----

    switch(result) {
        case '110' : msg.html('별명은 공백없이 한글, 영문, 숫자만 입력 가능합니다.').css('color', 'red'); break;
        case '120' : msg.html('한글 2글자, 영문 4글자 이상 입력 가능합니다.').css('color', 'red'); break;
        case '130' : msg.html('이미 존재하는 별명입니다.').css('color', 'red'); break;
        case '140' : msg.html('예약어로 사용할 수 없는 별명 입니다.').css('color', 'red'); break; // 추가
        case '000' : msg.html('사용하셔도 좋은 별명 입니다.').css('color', 'blue'); break;
        default : alert( '잘못된 접근입니다.\n\n' + result ); break;
    }
추천
8
  • 복사

댓글 6개

적용해 보았는데 회원정보 수정시 아이디, 닉네임 사용할 수 없다는 메시지창이 뜨고 정보 수정을
할 수가 없네요. 저만 그런가요?
© SIRSOFT
현재 페이지 제일 처음으로