Q&A

스케치북 비밀번호 찾기 "서버오류" 질문드려요..ㅠㅠ

2024.12.09 02:04
141
0
CMS/프레임워크 Rhymix 2.1
개발 언어 PHP 8.3

예전에 미쳐 확인하지 못했던 건지...

 

갑자기 회원들이 비밀번호 찾기가 안된다고.. 문의가 와서..  확인을 해보았는데요.

 

 

비밀번호 찾기 하면 이메일로 발송하고.. 이메일을 클릭하면 변경할 수 있는 페이지가 나오는데..

 

라이믹스 기본 디자인으로 하면 변경화면이 잘 표시되는데..

 

스케치북 회원 스킨으로 하면 로그인 창에 "서버오류" 라는 메세지만 출력이 됩니다...ㅠㅠ

 

스크린샷 2024-12-09 오전 11.03.00.png

 

에러메세지가 어딘지도 표시되지 않고... 갑갑해 죽겠네요...

 

로그인 상태에서 비밀번호 변경 페이지 로딩은 이상없는데... 비밀번호 찾기에서 비밀번호 변경 페이지만 오류가 납니다..ㅠㅠ

 

어떤 식으로 해결해야 할지 방향만 제시해 주셔도 좋겠습니다..

 

 

옵솔 Lv. 1

댓글 10

  • 2024.12.09 02:21 #1848568
    관리자로 로그인하여 로그인 스킨을 다른 스킨으로 변경한 후
    관리자 페이지의 설정 > 시스템 설정 > 디버그 설정 > 화면에 표시 클릭 + 모두에게 표시(or 관리자 PC의 IP 입력후 관리자에게만 표시 > 저장

    후 나오는 에러 로그를 보여주시기 바랍니다.
  • 2024.12.09 02:29 #1848577
    아하!! 감사합니다. 오류메세지는 이렇게 나오네요...ㅠㅠ

    Error #0 "Attempt to assign property "breadcrumb" on null" in modules/member/skins/sketchbook_member/__header.html on line 14



    객체를 먼저 선언하지 않고 속성을 추가하려 하고 있습니다. 오래된 자료에서 종종 사용하던 코딩 방식이나 최근 PHP에서는 허용되지 않으니, 에러 메시지에 포함된 파일명과 줄 번호를 참고하여 수정하세요.

    modules/member/skins/sketchbook_member/__header.html:14
  • 2024.12.09 02:29 #1848581

    스케치북 회원 스킨 오랜만에 보네요.
    스케치북 게시판 스킨은 쓰는 사람이 워낙 많아서 꾸준히 버그가 수정되는데,
    회원 스킨은 10년 넘게 아무도 건드리지 않았을 것 같습니다.

     

    에러 내용을 확인하셨다면 거기 나오는 파일명의 몇 번째 줄로 가서

    해당 부분의 소스를 보고 수정하거나, 필요없는 부분이라면 삭제하거나 하시면 됩니다.

  • 2024.12.09 02:31 #1848587
    멤버스킨은 작년에도 이 곳에서 버그수정을 하셨더라구요...
    그 분이 아직 활동하시는지 모르겠어서.. 이 곳에 질문을 올렸습니다..ㅠㅠ
  • 2024.12.09 02:57 #1848596

    if ( !isset($module_info->breadcrumb) ) $module_info->breadcrumb = 'N';

    if ( !isset($module_info->cnb) ) $module_info->cnb = 'cnb3';

    if ( !isset($module_info->zine_thumb_width) ) $module_info->zine_thumb_width = 80;

    if ( !isset($module_info->zine_thumb_height) ) $module_info->zine_thumb_height = 45;

    if ( !isset($module_info->zine_thumb_type) ) $module_info->zine_thumb_type = 'fill';

    이 부분의 첫번째 라인을
     

    if ( !isset($module_info->breadcrumb) ) $module_info= new stdClass(); $module_info->breadcrumb = 'N';


    이렇게 고쳤더니.. 뜨네요...
    나머지 아랫 줄들도 다 바꿔야 할까요..?

  • 2024.12.09 03:40 #1848600
    그렇게 하시기 보다는 $module_info가 처음 언급되는 줄 위에

    $module_info = new stdClass(); 를 선언 해주시면 될것 같습니다.

    그 외에도 오브젝트를 사용하는 모듈의 항목도 보통 Attempt to assign property 에러가 나오면 해당 줄 위에 새로이 선언 해 주시면 됩니다.

    php8버전을 사용중이신 것 같은데, 7까지는 동 오류가 나지 않지만 php8에서는 아마 지속적으로 오래된 자료들은 동일한 문제를 겪으실겁니다.
  • 2024.12.09 04:09 #1848605

    $module_info가 이미 있을 수도 있습니다.

    회원 관련 기능은 어느 mid에든 갖다 붙일 수 있는 구조이니까요.

    가장 안전한 방법은 맨 위에서
    if (!isset($module_info)) $module_info = new stdClass();
    이렇게 $module_info가 없는 경우에만 초기화하도록 조건을 붙이는 것이 되겠습니다.

    오브젝트 선언과 관련된 오류를 확실하게 잡기가 어려운 이유가 이것입니다.
    상황에 따라 오브젝트가 이미 선언되어 있을 수도 있는데,
    무턱대고 초기화하면 그 전에 저장되어 있던 데이터가 날아가니까요.

  • 2024.12.09 04:28 #1848617
    감사합니다! 적용해보았는데 오류가 나지 않아요!
    감사합니다!!
  • 2024.12.09 05:25 #1848623
    좋은 답변을 드리고 싶은데, 질문기여자가 아니라 그런것인지 버튼이 안보이는군요.
    감사합니다.
  • 2024.12.09 04:25 #1848613
    감사합니다. 다른 것들 다 찾아서 고치고 있었는데...
    이건.. 어디다가 넣어도 오류가 나더라구요..ㅠ