테스트 사이트 - 개발 중인 베타 버전입니다

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

yyoung 10년 전 조회 3,432

http://sir.co.kr/g4_skin/150638?sca=%ED%9A%8C%EC%9B%90%EA%B0%80%EC%9E%85">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 포인트
i
10년 전

기본 스킨을 보시면 텍스트 필드에 길이를 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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

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

댓글을 작성하려면 로그인이 필요합니다.

b
7년 전

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

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를 늘릴수 있네요. 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

i
10년 전

데이터베이스에서 테이블이란 데이터 집합이라 생각하시면 되고요.

자세한 내용은 관련 서적이나 블로그를 통해서 습득하시면 될 거 같습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

10년 전
mb_id 들어가는 컬럼을 죄다 찾아서 죄다 바꿔줘야 합니다.
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

d
10년 전

포인트 테이블의 mb_id 입력 최대가 varchar(20) 입니다.

영문 20자 넘으면 나머지는 짤리게 됩니다.

해당 컬럼의 값을 늘려주셔야 할것 같습니다.

g5_point 테이블입니다. 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인