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

비밀번호찾기 채택완료

고기조아 4년 전 조회 1,979

비밀번호찾기에서 계속 error가 나서 확인해보니,

회원정보의 mb_lost_certify 필드에는 15f005097a5b3a1c5b7e9a690b2b2d63 48ea4c103de9905e

이렇게 입력이 되어 있고 (※값의 중간에 공백이 있습니다.)

메일로 받은 확인 링크의 값은 15f005097a5b3a1c5b7e9a690b2b2d63로 정확히 공백까지만 끊겨서 받으니 비밀번호 변경이 되지 않습니다.

trim으로 $mb_nonce의 공백을 없애려고 해도 공백은 계속 들어가네요

 

아래는 소스입니다.

=============================================

// 임시비밀번호 발급 $change_password = rand(100000, 999999); $mb_lost_certify = get_encrypt_string($change_password);

// 어떠한 회원정보도 포함되지 않은 일회용 난수를 생성하여 인증에 사용 $mb_nonce = md5(pack('V*', rand(), rand(), rand(), rand())); $mb_nonce = trim($mb_nonce); // 임시비밀번호와 난수를 mb_lost_certify 필드에 저장 $sql = " update {$g5['member_table']} set mb_lost_certify = '$mb_nonce $mb_lost_certify' where mb_id = '{$mb['mb_id']}' "; sql_query($sql);

=============================================

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

답변 1개

4년 전

trim 함수는 앞 뒤 공백을 제거해주는함수라 내부 공백 제거시에는 replace 쓰면 될거같네요

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

답변에 대한 댓글 2개

고기조아
4년 전
str_replace(" ", "", $mb_nonce); 로 모든 공백제거를 해도
mb_lost_certify필드에는 공백이 들어가 있습니다.

해당 필드의 설정값은 아래와 같습니다.
mb_lost_certify varchar(255) utf8_general_ci 아니오 없음

$mb_lost_certify 값을 db에 입력하기전 echo로 확인해보니 공백앞까지만 출력되고
막상 db에 입력된 값은 공백 포함 공백 뒤부분까지 입력되어 있네요.
이게 무슨 경우인지...
폭주죽
4년 전
$sql = " update {$g5['member_table']} set mb_lost_certify = '$mb_nonce $mb_lost_certify' where mb_id = '{$mb['mb_id']}' ";

여기 보시면 '$mb_nonce $mb_lost_certify' 여기 사이에 공백이 들어가있어서
mb_lost_certify 필드에 $mb_nonce + 공백 + $mb_lost_certify 값이 들어가는거같네요

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

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

로그인