닉네임에 공백글자(ex. 공백 닉네임)을 허용하고 싶습니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
닉네임에 공백글자(ex. 공백 닉네임)을 허용하고 싶습니다.

QA

닉네임에 공백글자(ex. 공백 닉네임)을 허용하고 싶습니다.

본문

질문답변을 검색에서 명쾌한 답변을 찾지 못해서 질문 올립니다.


닉네임 :  공백 허용   처럼 글자 중간에 공백을 허용하고자 합니다. 


관련사항을 검색해보니 아래의 내용에서 어딘가를 수정하면 될것으로 판단되는데,

가능한 시나리오는 해봤는데 모두 실패했습니다. 도움의 손길이 필요합니다.


1. 그누보드5 / bbs / ajax.mb_nick.php 내용중

if ($msg = empty_mb_nick($mb_nick)) die($msg);

if ($msg = valid_mb_nick($mb_nick)) die($msg);

if ($msg = count_mb_nick($mb_nick)) die($msg);

if ($msg = exist_mb_nick($mb_nick, $mb_id)) die($msg);

if ($msg = reserve_mb_nick($mb_nick)) die($msg);


2. 그누보드5 / bbs / register_form_update.php 내용중

    if ($msg = empty_mb_nick($mb_nick))     alert($msg, "", true, true); 

    if ($msg = empty_mb_email($mb_email))   alert($msg, "", true, true);

    if ($msg = reserve_mb_id($mb_id))       alert($msg, "", true, true);

    if ($msg = reserve_mb_nick($mb_nick))   alert($msg, "", true, true);

    // 이름에 한글명 체크를 하지 않는다.

    if ($msg = valid_mb_name($mb_name))     alert($msg, "", true, true);

    if ($msg = valid_mb_nick($mb_nick))     alert($msg, "", true, true);


3. 그누보드5 / lib / register.lib.php 

function valid_mb_nick($reg_mb_nick)

{

    if (!check_string($reg_mb_nick, G5_HANGUL + G5_ALPHABETIC + G5_NUMERIC + G5_SPECIAL))

        return "닉네임은 공백없이 한글, 영문, 숫자만 입력 가능합니다.";

    else

        return "";

}


이 질문에 댓글 쓰기 :

답변 4

check_string 함수에서 공백이 걸리는군요. 수정해주셔야합니다

lib/common.lib.php에서 

check_string 검색하셔서

주석에 공백이라고 되어있는부분 소스를 주석처리해주세요.

이렇게 2가지 처리를 했는데,  닉네임 : 공백이 없어야 합니다.  라고 뜨네요.
제가 어떤 처리가 부족한 걸까요?

그누보드5 / lib / common.lib.php 내용에서
function check_string($str, $options)
{
...
}

를 복사해서 아래와 같이 추가

function check_string_nick($str, $options)
{
    global $g5;

    $s = '';
    for($i=0;$i<strlen($str);$i++) {
        $c = $str[$i];
        $oc = ord($c);

        // 한글
        if ($oc >= 0xA0 && $oc <= 0xFF) {
            if ($options & G5_HANGUL) {
                $s .= $c . $str[$i+1] . $str[$i+2];
            }
            $i+=2;
        }
        // 숫자
        else if ($oc >= 0x30 && $oc <= 0x39) {
            if ($options & G5_NUMERIC) {
                $s .= $c;
            }
        }
        // 영대문자
        else if ($oc >= 0x41 && $oc <= 0x5A) {
            if (($options & G5_ALPHABETIC) || ($options & G5_ALPHAUPPER)) {
                $s .= $c;
            }
        }
        // 영소문자
        else if ($oc >= 0x61 && $oc <= 0x7A) {
            if (($options & G5_ALPHABETIC) || ($options & G5_ALPHALOWER)) {
                $s .= $c;
            }
        }
        // 공백
        //else if ($oc == 0x20) {
        //    if ($options & G5_SPACE) {
        //        $s .= $c;
        //    }
        //}
        else {
            if ($options & G5_SPECIAL) {
                $s .= $c;
            }
        }
    }

    // 넘어온 값과 비교하여 같으면 참, 틀리면 거짓
    return ($str == $s);
}


그누보드5 / lib / regiseter.lib.php 내용에서
function valid_mb_nick($reg_mb_nick)
{
    if (!check_string(...

를 아래와 같이 수정

function valid_mb_nick($reg_mb_nick)
{
    if (!check_string_nick(...

js/wrest.js


function wrestNospace(fld)
{
    var pattern = /(\s)/g; // \s 공백 문자

    if (pattern.test(fld.value)) {
        if (wrestFld == null) {
            wrestMsg = wrestItemname(fld) + " : 공백이 없어야 합니다.\n";
            wrestFld = fld;
        }
    }
}
...
// submit 할 때 속성을 검사한다.
function wrestSubmit()
{
    wrestMsg = "";
    wrestFld = null;
    ...

...
// 초기에 onsubmit을 가로채도록 한다.
function wrestInitialized()
{

    for (var i = 0; i < document.forms.length; i++) {
        // onsubmit 이벤트가 있다면 저장해 놓는다.
        ...

...
// 폼필드 자동검사
$(document).ready(function(){
    // onload
    wrestInitialized();
});

꼼수적 의견


' ' 을 ' ' 로 변환후 저장

' ' 은 spacebar

' '는 ㄱ,[한자],1 


보기에만 공백이면 될때 공백 1개짜리에서만 가능하도록 제한하면 되지 않을까요

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색

회원로그인

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