아이디가 길어지니까 포인트가 안쌓여요

아이디가 길어지니까 포인트가 안쌓여요

QA

아이디가 길어지니까 포인트가 안쌓여요

본문

http://sir.co.kr/g4_skin/150638?sca=%ED%9A%8C%EC%9B%90%EA%B0%80%EC%9E%85

 

에서 indie 님이 알려주신 방법으로 회원가입할때 아이디를 이메일주소를 받는 방식으로 바꿨습니다. 그런데 이메일 주소가 길어지면 이상하게 포인트(예: 회원가입시 1000포인트, 로그인시 100포인트)가 안쌓이는데 왜 그런건가요? 이메일주소가 20글자가 넘어갈때만 이런 문제가 생깁니다.

고수님들 답변 부탁드립니다.

 

이 질문에 댓글 쓰기 :

답변 5

기본 스킨을 보시면 텍스트 필드에 길이를 20글자로 제한하는데

이유는 디비에 mb_id 필드 길이를 20글자로 잡았기 때문입니다.

 

회원가입​시 20글자를 초과하더라도 진행이 되겠지만

디비에 추가할 때 초과한 길이는 잘라버립니다.

 

예를들면 필드 길이가 3일 때 "가나다라마" -> "가나다" 

 

포인트 같은 경우는 20글자 초과한 아이디로 지급하려니

디비에 해당 아이디가 존재하지 않아 지급되지 않게 되죠.

 

로그인 세션 또한 20글자 초과한 아이디로 저장되어

실제로는 존재하지 않는 아이디라고 보시면 될 거 같습니다.

 

해결 방법은 디비에서 해당 필드의 길이를 수정하시면 됩니다.

아래는 mb_id 필드가 포함된 테이블 리스트 입니다.

 

g5_auth, g5_board_good, g5_board_new, g5_cert_history, g5_group_member, g5_login, g5_me ber, g5_memo, g5_point, g5_poll_etc, g5_scrap, g5_autosave, g5_qa_content

답변 정말 감사합니다.
그런데, 죄송합니다만, 제가 시작한지 얼마 안된 왕왕초보라서 그런데 "테이블"이 정확히 뭔가요? 너무 기본적인걸 물어보는거 같아 물어보면서도 좀 민망하긴 합니다만... ;;; 저는 처음에 무슨 파일인줄 알았는데 그게 아닌거 같아서... 구체적으로 어떤걸 어떻게 수정하면 되는지 가르쳐주시면 감사하겠습니다.

한참 지난 글이지만 혹시 지금도 같은 문제를 격을 분이 있을것 같아서 ... 

mb_id의 컬럼 사이즈를 이메일 컬럼 사이즈와 동일하게 varchar 255로 전부 바꾸고 있었는데요. g5_point를 보니 인덱스가 걸려있어서 38인가? 까지만 늘릴수 있더군요. 이 값은 DB 설정값에 따라 다를겁니다. 원인은 4개의 컬럼을 묶어서 인덱스로 만든것때문인데요. 처음에는 mb_id를 mb_no로 바꿀려고 했습니다. 그런데 수정할 곳이 많더군요. 이 작업은 코어 개발자들에게 넘겨야 겠더군요. (왜? mb_no를 안쓰고 mb_id를 썼는지는 궁금합니다.) 암튼, 인덱스를 보니 4개의 컬럼을 묶어서 인덱스 걸었더군요. 그래서 mb_id, po_rel_table 컬럼만 인덱스로 걸었습니다. 쿼리 찾아보니 4개를 where에 사용해 count하는 쿼리가 있던데 그것때문에 인덱스를 만든것 같아 관련 컬럼 2개만 넣었습니다.  그랬더니 255까지 mb_id를 늘릴수 있네요. 

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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