채택완료

비밀번호 찾기 질문드립니다.

2018-01-24 (수) 16:57:53 2,853

사이트에서

비밀번호 찾기를 하면

메일까지는 잘 옵니다.

근데

password_lost_certify.php 파일에서 오류가 나네요;

코드를 보니

Copy
if (strlen($mb['mb_lost_certify']) < 33)
    die("Error")

위의 코드인데요.

그래서 g5_member 테이블을 살펴보니

mb_lost_certify 필드가 전부 값이 비어있습니다.

원래 값이 비어있는게 정상인가요?

회원가입쪽 비밀번호 관련 건드린건

비밀번호를 4자리가 아닌 특수문자 포함으로 변경한것 하나 뿐입니다.

답변 2개 / 댓글 7개

채택된 답변
+20 포인트
2018-01-24 (수) 17:20:59

기본적으로 비어있는게 정상입니다

비밀번호 찾기 했을경우에만 mb_lost_certfy값이 생성됩니다~

if (strlen($mb['mb_lost_certify']) < 33)

//mb_lost_certify 필드의 문자열 길이가 값이 33보다 작다면 죽어버리네요

답변에 대한 댓글 5개

다시 해보니
메일 받고

비밀번호 변경 버튼 누른뒤
나오는 로그인 창에서
로그인 하면
Error 가 출력되네요;


비밀번호 변경을 눌렀음에도
mb_lost_certify 값이 비어있다면 어디를 의심해 봐야할까요;
password_lost2.php 파일에서
$mb_lost_certify, $mb_nonce 변수가 정삭적으로 작동하는지 확인이 필요할 것 같네요~
메일 오는것 보니
$mb_lost_certify 변수는 6자리 난수로 생성이 되는것 같구요..
$mb_nonce 는 오류난 주소창 보니

a2902a64e7ea0a8c97c0c7261fc66682

이렇게 난수로 생성되는것 같은데 도무지 왜 error 가 나오는지 모르겠네요;


실험해보니
password_lost_certify.php 파일의
마지막 alert 의 url 값을

G5_BBS_URL.'/login.php' --> G5_URL
로 변경해서 로그인하니 잘되네요-_-
login.php 문제였던 걸까요;
login.php 가 documentRoot 에 있나요?
뭔가 좀 이상한것같네요 어떤 버전 쓰시는건지도 잘 모르겠구요
직접 소스를 보지 않는이상 답변드리기가 어려울 것 같습니다..
login.php 는 bbs 파일위치에 존재합니다.
버전은
5.2.9.8.1 사용중입니다.
어떤문제인지 도무지 모르겠네요 ㅠ

소스만 보시기 보다 해당 데이터 결과값이 잘 나오는가 출력을 해보시기 바랍니다. 

if (strlen($mb['mb_lost_certify']) < 33) 

여기서 조건이 mb_lost_crrtify 값이 33보다 작을경우 에러가 나게 되므로 에러가 난다는건 결과적으로 값이 없거나 33보다 작다는 이유 입니다. 정상적으로 mb_lost_certify값이 출이력이 되는지 살펴보시기 바랍니다.아니면 다른쪽에서 에러메세지를 출력하는지도 자세히 살펴보시기 바랍니다

답변에 대한 댓글 2개

다른쪽에서 에러메세지가 나오는건 아닌것 같구요
mb_lost_certify 값은
아예 빈값이예요;
db에는 값이 있는데 mb_lost_certify 비어있는건가요? 그러시면 mb_lost_certify 값을 정상적으로 못가지고 와서 생기는 현상입니다.
이 부분은 디버깅 해보셔야 할꺼 같습니다.

작업을하시다 다른쪽으로부터 영향을 받아서 못가지고 오기떄문에..이부분은 디버기 해보시며 원인을 찾아 해결할수 있을걸로 보여집니다. 궁금하신 사항인 쪽지로 부탁드리겠습니다.

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