아이디가 한글인 회원의 정보수정
본문
G5에서는 한글아이디를 허용하지 않는것으로 알고 있지만 기존 회원데이터를 이전해 오면서
아이디가 한글인 회원들이 다수 포함되어 있습니다.
로그인까지는 문제없이 되는데,
관리자페이지>회원관리 로 들어가서 회원정보 수정에 들어가려고 하면
"존재하지 않는 회원입니다." 라고 경고창이 뜨면서 회원정보수정 페이지에 들어갈 수가 없습니다.
한글아이디가 DB에 들어가 있는 것도 확인했고요.
영문으로 된 아이디는 이상없이 회원정보페이지에 들어갈 수 있습니다.
한글아이디로 된 회원의 정보수정이 가능하게 하려면 어떻게 해야 할까요?
※예시
: 관리자>회원관리 에서 회원의 [수정] 버튼을 누르면
1)아이디가 한글일 경우 (아이디:김그누)
=>"존재하지 않는 회원입니다." 라고 뜹니다.
http://그누설치주소/adm/member_form.php?sst=mb_name&sod=asc&sfl=&stx=&page=1&w=u&mb_id=김그누
2)아이디가 영문일 경우 (아이디: kimgnu)
http://그누설치주소/adm/member_form.php?sst=mb_name&sod=asc&sfl=&stx=&page=1&w=u&mb_id=kimgnu
=>정상적으로 접근 및 수정 가능합니다.
답변 3
$mb_id에 필터링 된거같은데 정규식으로 뭔가 처리된거같아요 안그럼 정상작동해야되는데요
답변 주신 분들 감사 드립니다.
어찌어찌 자문자답으로 해결이 되었는데요.
저는 향후 신규가입에는 한글아이디를 사용하지 않을 생각이라서, 기존에 이미 한글로 가입된 회원에 대해서만 한글아이디로 로그인허용 및 관리자에서 수정 가능하게 하는 목적이어서, 임시방편으로 처리했습니다.
/lib/common.lib.php 파일 안에 있는 아래 부분을 수정해서 처리 했습니다.
818행 부근에 있는 return array(); 를 주석처리 하니까 한글을 허용하네요.
// 회원 정보를 얻는다.
function get_member($mb_id, $fields='*', $is_cache=false)
{
global $g5;
if (preg_match("/[^0-9a-z_]+/i", $mb_id))
// return array();