서버 오류

TypeError #0 "in_array(): Argument #2 ($haystack) must be of type array, null given" in files/faceOff/138/layout.html on line 497

배열이 아닌 변수에 배열 함수를 사용하려 하고 있습니다. 오래된 자료에서 종종 사용하던 코딩 방식이나 최근 PHP에서는 허용되지 않으니, 에러 메시지에 포함된 파일명과 줄 번호를 참고하여 수정하세요.

files/faceOff/138/layout.html:497

스크린샷 2024-01-18 091310.png

 

안녕하세요.

 

다른 일에 몰두하다가 가끔, 아주 가끔 신경을 쓰는 관계로 늘 초보입니다. 경험했던 것도 다 리셋이 되어 기억이 안나는 수준입니다.

 

상황은 이렇습니다.

 

이번에 호스팅이 만기가 되어 다른 호스팅 (ionos)로 옮겼습니다. 옮기면서 라이믹스 2.1.12 버전으로 ftp를 이용해 덮어쓰기 해서 버전업도 했습니다. 현재 PHP는 8.2.14 사용중이네요.

 

문제는 웹사이트 접속을 하면 상기 오류와 함께 어드민 로그인 창만 표시되고 있습니다. 어드민으로 접속을 하면 웹사이튼는 제대로 출력이 되는데 로그아웃을 하면 저렇게 로그인 창만 나오네요. 현재 debug창도 모두가 볼 수 있도록 열어두었습니다. 참고로 이전 호스팅에서는 PHP를 7.x 대로 사용했던 것 같은데 아무런 문제없이 잘 출력이 됐는데 이 호스팅에서는 에러가 나네요. 현재 새로운 호스팅 업체는 PHP 버전을 8.0 까지 다운할 수 있지만 다운그레이드 해도 마찬가지입니다. 

 

레이아웃은 오래되긴 했지만 Root basic 사용하고 있습니다.

 

위 에러 때문에 웹사이트가 출력이 안되고 있는 것이 맞나요? 저 에러를 검색해봐도 어떻게 해결할 지를 모르겠네요.

고수님들의 도움이 필요합니다. 감사합니다.

  • profile

    "에러 메시지에 포함된 파일명과 줄 번호를 참고하여 수정하세요."

    이렇게까지 우리말로 설명을 해드렸는데 files/faceOff/138/layout.html 파일의 497번째 줄에

    어떤 내용이 있는지 알려주지 않으시면 섭섭합니다...

     

    아마 in_array(aaa, bbb) 이런 형태의 코드가 있을 텐데,

    in_array(aaa, bbb ?? []) 이렇게 바꾸면 해결될 가능성이 높습니다.

  • profile ?
    기진곰님 섭섭하게 해드려서 죄송합니다. ㅎ 에디터상에 497번째 줄은 <include target=... 여기서 부터구요, 혹시 몰라 위 아래 한 줄씩 더 캡쳐했습니다. 이렇게 고치면 웹사이트 출력이 제대로 되는 건가요?

    <div id="modal-login" class="modal fade" cond="!$is_logged">
    <include target="./custom/custom_login_modal.html" cond="in_array('custom_login_modal',$li->custom)" />
    <div class="modal-dialog modal-sm" cond="!in_array('custom_login_modal',$li->custom)">
  • ?

    $li->custom ?? []) 이렇게 고치면 해결이 가능한가요?

  • ? profile

    네, 그렇게 수정해 보세요. 선수정 후댓글! 밑져야 본전이죠.^^

    수정하더라도 다른 파일, 다른 줄에서 비슷한 오류가 또 발생할지도 모릅니다. 뭐야 여전히 에러나잖아? 라고 생각하기 전에 파일명과 줄 번호를 자세히 보시기 바랍니다. 준비 없이 PHP 7.x에서 8.x로 바꾸셨다면, 정상적으로 페이지가 뜰 때까지 계속 두더지잡기를 하는 수밖에 없어요.