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

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

QA

SIR 제작의뢰 - 견적무료/익명보정/호스팅, DB 이전/단기개발. 이젠 ' 의뢰인'이 원하는 '제작자'에게만 연락처를 알릴 수 있습니다.

닉네임에 공백글자(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개짜리에서만 가능하도록 제한하면 되지 않을까요

주소복사
답변의 댓글
답변을 작성하시기 전에 로그인 해주세요.
전체 52,613 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

진행중인 포인트경매

  1. 영카트 NEW 관리자모드 50% 할인쿠폰

    참여0 회 시작17.10.20 21:39 종료17.10.21 12:10
  2. 보성 레드키위 2kg

    참여82 회 시작17.10.19 10:54 종료17.10.24 10:54

(주)에스아이알소프트 (06253) 서울 강남구 강남대로 310, 1312호 (역삼동, 유니온센터) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT