별명에서 한글 입력이 안됩니다. 정보
별명에서 한글 입력이 안됩니다.본문
오류가 나는곳의 주소를 알려주시면 더 빠르고 정확하게 답변 받을 수 있습니다.
오류 주소 : skin / member / basic / ajax_mb_nick_check.php
해당 파일을 수정한 적은 없습니다. 원래 이렇게 코딩되어 있었는데
숫자, 영문은 입력이 제대로 되는데 한글을 입력하면 "영문, 숫자만 입력 가능"합니다.
라고 나옵니다. 근데 해당 코딩을 보면 한글도 추가되어 있습니다.
아래는 ajax_mb_nick_check.php 파일의 전체 내용입니다.
<?
include_once("_common.php");
if (!function_exists('convert_charset')) {
/*
-----------------------------------------------------------
Charset 을 변환하는 함수
-----------------------------------------------------------
iconv 함수가 있으면 iconv 로 변환하고
없으면 mb_convert_encoding 함수를 사용한다.
둘다 없으면 사용할 수 없다.
*/
function convert_charset($from_charset, $to_charset, $str) {
if( function_exists('iconv') )
return iconv($from_charset, $to_charset, $str);
elseif( function_exists('mb_convert_encoding') )
return mb_convert_encoding($str, $to_charset, $from_charset);
else
die("Not found 'iconv' or 'mbstring' library in server.");
}
}
$reg_mb_nick = convert_charset('UTF-8','CP949',$reg_mb_nick);
// 별명은 한글, 영문, 숫자만 가능
if (!check_string($reg_mb_nick, _G4_HANGUL_ + _G4_ALPHABETIC_ + _G4_NUMERIC_)) {
echo "110"; // 별명은 공백없이 영어만 가능합니다.
} else if (strlen($reg_mb_nick) < 4) {
echo "120"; // 4글자 이상 입력
} else {
$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"; // 정상
}
}
?>
위에 보시면 "_G4_HANGUL_ + _G4_ALPHABETIC_ + _G4_NUMERIC_" 이렇게 되어서
한글도 추가 되어 있는데, 한글 입력 시 "영문과 숫자"만 입력 가능하다고 뜨네요.
원본 만드신 분도 하다보니 잘 안되서 한글은 포기한 것인지 모르겠는데..
전 별명에도 한글이 들어가도록 하고 싶습니다. 도움 부탁드립니다.
오류 주소 : skin / member / basic / ajax_mb_nick_check.php
해당 파일을 수정한 적은 없습니다. 원래 이렇게 코딩되어 있었는데
숫자, 영문은 입력이 제대로 되는데 한글을 입력하면 "영문, 숫자만 입력 가능"합니다.
라고 나옵니다. 근데 해당 코딩을 보면 한글도 추가되어 있습니다.
아래는 ajax_mb_nick_check.php 파일의 전체 내용입니다.
<?
include_once("_common.php");
if (!function_exists('convert_charset')) {
/*
-----------------------------------------------------------
Charset 을 변환하는 함수
-----------------------------------------------------------
iconv 함수가 있으면 iconv 로 변환하고
없으면 mb_convert_encoding 함수를 사용한다.
둘다 없으면 사용할 수 없다.
*/
function convert_charset($from_charset, $to_charset, $str) {
if( function_exists('iconv') )
return iconv($from_charset, $to_charset, $str);
elseif( function_exists('mb_convert_encoding') )
return mb_convert_encoding($str, $to_charset, $from_charset);
else
die("Not found 'iconv' or 'mbstring' library in server.");
}
}
$reg_mb_nick = convert_charset('UTF-8','CP949',$reg_mb_nick);
// 별명은 한글, 영문, 숫자만 가능
if (!check_string($reg_mb_nick, _G4_HANGUL_ + _G4_ALPHABETIC_ + _G4_NUMERIC_)) {
echo "110"; // 별명은 공백없이 영어만 가능합니다.
} else if (strlen($reg_mb_nick) < 4) {
echo "120"; // 4글자 이상 입력
} else {
$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"; // 정상
}
}
?>
위에 보시면 "_G4_HANGUL_ + _G4_ALPHABETIC_ + _G4_NUMERIC_" 이렇게 되어서
한글도 추가 되어 있는데, 한글 입력 시 "영문과 숫자"만 입력 가능하다고 뜨네요.
원본 만드신 분도 하다보니 잘 안되서 한글은 포기한 것인지 모르겠는데..
전 별명에도 한글이 들어가도록 하고 싶습니다. 도움 부탁드립니다.
댓글 전체
저도 그런적이 있는데 저같은 경우엔 특수한 경우였습니다.
UTF-8 빌더를 Euc-kr로 수정하여 설치했었었는데 그때 발생한 문제인것 같았습니다.
혹시 도움이 될지 모르겠지만..
skin/member/basic에 ajax_mb_nick_check.php 내용중
if (strtolower($g4[charset]) == 'euc-kr')
$reg_mb_nick = convert_charset('utf-8','CP949',$reg_mb_nick);
이렇게 euc-kr로 수정했었습니다.
UTF-8 빌더를 Euc-kr로 수정하여 설치했었었는데 그때 발생한 문제인것 같았습니다.
혹시 도움이 될지 모르겠지만..
skin/member/basic에 ajax_mb_nick_check.php 내용중
if (strtolower($g4[charset]) == 'euc-kr')
$reg_mb_nick = convert_charset('utf-8','CP949',$reg_mb_nick);
이렇게 euc-kr로 수정했었습니다.