아주 가끔.. 이런 오류가 나옵니다.

 

저는 로그아웃 할때 많이 봤던걸로 기억합니다.

 

그냥 로그 아웃이 아니고..

 

외부페이지를 만들어서 로그인 기능을 사용하는 곳이 있는데..

 

거기서 로그아웃하면 저런 메시지기 가끔 아주 가끔 보이네요..

(일반 로그아웃에서도 나왔을수도 있습니다.. 제 기억으로는 외부페이지에서 많이 본거 같아요.)

 

브라우저에 표시되는 오류 내용


치명적 오류: 잡히지 않은 오류 : [] 연산자는 /var/www/html/xe/config/func.inc.php:257의 문자열에서 지원되지 않습니다. 스택 추적 : # 0 /var/www/html/xe/config/func.inc. PHP는 (240) : setUserSequence (3103594) # 1 /var/www/html/xe/modules/advanced_mailer/classes/base.class.php(517) : getNextSequence () # 2 / var / www / html / xe / modules /member_expire/member_expire.model.php(127) : Advanced_Mailer \ Base-> send () # 3 /var/www/html/xe/modules/member_expire/member_expire.controller.php(173) : Member_ExpireModel-> sendEmail (2707741) , Object (stdClass), false, false) # 4 /var/www/html/xe/classes/module/ModuleHandler.class.php(1318) : Member_ExpireController-> triggerAutoExpire (Object (stdClass)) # 5 / var / www /html/xe/modules/member/member.controller.php(105) : ModuleHandler :: triggerCall ( 'member.doLogout', 'after', Object (stdClass)) # 6 / var / www / html / xe / modules / 회원 / 회원.php (508) : memberController-> procMemberLogout () # 7 /var/www/html/xe/classes/module/ModuleObject.class.php(443) : memberView-> dispMemberLogout () # 8 / var / www / html / xe / classes / module / ModuleHandler.c/var/www/html/xe/config/func.inc.php on line 257

 

 

에러 로그에 보면

2018/08/29 11:26:12 [error] 1008#1008: *5747304 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: [] operator not supported for strings in /var/www/html/xe/config/func.inc.php:257
Stack trace:
#0 /var/www/html/xe/config/func.inc.php(240): setUserSequence(3103594)
#1 /var/www/html/xe/modules/advanced_mailer/classes/base.class.php(517): getNextSequence()
#2 /var/www/html/xe/modules/member_expire/member_expire.model.php(127): Advanced_Mailer\Base->send()
#3 /var/www/html/xe/modules/member_expire/member_expire.controller.php(173): Member_ExpireModel->sendEmail(2707741, Object(stdClass), false, false)
#4 /var/www/html/xe/classes/module/ModuleHandler.class.php(1318): Member_ExpireController->triggerAutoExpire(Object(stdClass))
#5 /var/www/html/xe/modules/member/member.controller.php(105): ModuleHandler::triggerCall('member.doLogout', 'after', Object(stdClass))
#6 /var/www/html/xe/modules/member/member.view.php(508): memberController->procMemberLogout()
#7 /var/www/html/xe/classes/module/ModuleObject.class.php(443): memberView->dispMemberLogout()

 

이렇게 표시 됩니다.

 

둘다 같은 내용이지만... 로그내용이 보기 편하실꺼 같아서요 ㅎㅎㅎ

 

조언 부탁 드립니다.

 

ps : 오리지널 xe 1.9.8  php 7.1, nginx, mysql 5.6 입니다.

  • Lv30
    코알못이라 현상만 추측해보면
    로그아웃 의 트리거에 작업해 놓은신분이 생각납니다. 휴면계정정리모듈이 이용자의 불편을 느끼지 못하는 액션 로그아웃에 휴면계정에 필요한 작업(메일발송등)을 작동하도록 해 놓으셨습니다.

    이부분이 어쩌면 관련이 있을지도요.
    휴면계정정리모듈,고급메일발송모듈 등이 동작하겠네요.
  • Lv30 ?
    댓글 감사합니다. 확인해 보겠습니다.
  • Lv36

    XE의 버그입니다. config/func.inc.php 253줄에서

    if(isset($_SESSION['seq']))

    이것을

    if(isset($_SESSION['seq']) && is_array($_SESSION['seq']))

    이렇게 바꿔주세요.

    어딘가에서 $_SESSION['seq']에 배열이 아닌 값을 넣어서 오류를 유발하고 있는 것 같습니다만,
    휴면계정 정리 모듈이나 고급 메일 발송 모듈은 아닐 겁니다 ㅎㅎ

  • Lv36 ?
    방금 수정하였습니다. 차후 오류가 계속 발생하는지 확인해보겠습니다.

    감사합니다.
  • Lv36 Lv30
    문제의 원인이 두 모듈이라는 건 아니었구요. 로그아웃시 두 모듈이 관여하는 것이 로그에 보여서요~~~
  • Lv36 ?
    수정하고 20회 로그인 로그아웃 해봤는데 별 이상없었습니다.

    우연인가 싶어서....

    수정전 코드로 다시 고쳐놓고 로그인 로그아웃 2회 하는데 오류를 뿜네요..

    다시 수정해주신 코드로 해놓고 좀더 지켜보겠습니다.

    감사합니다.

    xe 코어 업데이트 하면 다시 수정해서 써야 하는거죠? ㅠ.ㅠ
  • ? Lv30
    다시 수정하기 싫으시면 이슈를 등록하시면 됩니다. 저는 주로 제가 계속 고쳐야 할 것 같은 문제는 이슈로 등록합니다.
  • Lv30 ?
    이슈 등록을 할줄 몰라요 ㅠ.ㅠ 영어 울렁증이있어서요..
    언제 날잡아서 깃헙 도전해 본다는데.. 몇년째 이러고 있네요 ㅎㅎㅎ
    아주 무책임하죠...ㅠ.ㅠ
  • ? Lv30
    https://github.com/xpressengine/xe-core/issues

    NEW ISSUE 이정도는 하실줄 아시잖아요 ㅋ
  • Lv30 ?
    해보니깐....

    말씀 하신것 처럼 할줄 아는게 맞네요 ㅋㅋ

    뭔 조직 이름을 넣으래서..(번역기로 돌렸네요) 조직 이름을 잘못넣은거 같기도 하고 ㅋㅋ

    링크 주신 xe-core 이슈에 정상적으로 등록된거 간습니다.

    용기 주셔서 감사합니다.
  • ?
    가만생각하니 이거 xe 질문에 올려야 하는데 서버에 올렸네요 이런...