Kboard 게시판 설정 페이지 접속 오류 문의

1. 정확한 제품 또는 플러그인 이름

- KBoard 게시판 6.3

- User Role Editor Pro 4.61

 

2. 상세 내용

Kboard 플러그인을 User Role Editor 플러그인과 같이 사용중입니다.
https://imgur.com/W8NZwjB
그런데 종종 Kboard 게시판 설정 페이지로 들어가려 하면 HTTP 500 오류가 발생될 때가 있습니다.
이럴 때 웹 서버에서 로그를 보면 아래와 같은 로그들이 기록됩니다.
(아래 로그는 한번에 기록된 것은 아니며, 오류나는 라인마다 순차적으로 "./plugins/kboard/pages/kboard_setting.php" 코드를 수정하며 기록된 내용입니다.)

[Thu Apr 13 11:09:32.381390 2023] [proxy_fcgi:error] [pid 17721:tid 140468453357312] [remote 211.x.x.30:43867] AH01071: Got error 'PHP message: PHP Fatal error:  Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, string given in /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php:471\nStack trace:\n#0 /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php(471): in_array()\n#1 /home/WWW/docroot/wp-content/plugins/kboard/index.php(390): include_once('...')\n#2 /home/WWW/docroot/wp-content/plugins/kboard/index.php(335): kboard_setting()\n#3 /home/WWW/docroot/wp-includes/class-wp-hook.php(308): kboard_list()\n#4 /home/WWW/docroot/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters()\n#5 /home/WWW/docroot/wp-includes/plugin.php(517): WP_Hook->do_action()\n#6 /home/WWW/docroot/wp-admin/admin.php(259): do_action()\n#7 {main}\n  thrown in /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php on line 471', referer: https://site.ac.kr/wp-admin/admin.php?page=kboard_list

[Thu Apr 13 11:10:28.628829 2023] [proxy_fcgi:error] [pid 17721:tid 140468436571904] [remote 211.x.x.30:45124] AH01071: Got error 'PHP message: PHP Fatal error:  Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, string given in /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php:502\nStack trace:\n#0 /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php(502): in_array()\n#1 /home/WWW/docroot/wp-content/plugins/kboard/index.php(390): include_once('...')\n#2 /home/WWW/docroot/wp-content/plugins/kboard/index.php(335): kboard_setting()\n#3 /home/WWW/docroot/wp-includes/class-wp-hook.php(308): kboard_list()\n#4 /home/WWW/docroot/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters()\n#5 /home/WWW/docroot/wp-includes/plugin.php(517): WP_Hook->do_action()\n#6 /home/WWW/docroot/wp-admin/admin.php(259): do_action()\n#7 {main}\n  thrown in /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php on line 502', referer: https://site.ac.kr/wp-admin/admin.php?page=kboard_list

[Thu Apr 13 11:11:13.217185 2023] [proxy_fcgi:error] [pid 17721:tid 140467995842304] [remote 211.x.x.30:40817] AH01071: Got error 'PHP message: PHP Fatal error:  Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, string given in /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php:592\nStack trace:\n#0 /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php(592): in_array()\n#1 /home/WWW/docroot/wp-content/plugins/kboard/index.php(390): include_once('...')\n#2 /home/WWW/docroot/wp-content/plugins/kboard/index.php(335): kboard_setting()\n#3 /home/WWW/docroot/wp-includes/class-wp-hook.php(308): kboard_list()\n#4 /home/WWW/docroot/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters()\n#5 /home/WWW/docroot/wp-includes/plugin.php(517): WP_Hook->do_action()\n#6 /home/WWW/docroot/wp-admin/admin.php(259): do_action()\n#7 {main}\n  thrown in /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php on line 592', referer: https://site.ac.kr/wp-admin/admin.php?page=kboard_list

[Thu Apr 13 11:12:07.234887 2023] [proxy_fcgi:error] [pid 17721:tid 140468394608384] [remote 211.x.x.30:49701] AH01071: Got error 'PHP message: PHP Fatal error:  Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, string given in /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php:616\nStack trace:\n#0 /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php(616): in_array()\n#1 /home/WWW/docroot/wp-content/plugins/kboard/index.php(390): include_once('...')\n#2 /home/WWW/docroot/wp-content/plugins/kboard/index.php(335): kboard_setting()\n#3 /home/WWW/docroot/wp-includes/class-wp-hook.php(308): kboard_list()\n#4 /home/WWW/docroot/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters()\n#5 /home/WWW/docroot/wp-includes/plugin.php(517): WP_Hook->do_action()\n#6 /home/WWW/docroot/wp-admin/admin.php(259): do_action()\n#7 {main}\n  thrown in /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php on line 616', referer: https://site.ac.kr/wp-admin/admin.php?page=kboard_list

[Thu Apr 13 11:12:48.236774 2023] [proxy_fcgi:error] [pid 17540:tid 140468470142720] [remote 211.x.x.30:44037] AH01071: Got error 'PHP message: PHP Fatal error:  Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, string given in /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php:643\nStack trace:\n#0 /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php(643): in_array()\n#1 /home/WWW/docroot/wp-content/plugins/kboard/index.php(390): include_once('...')\n#2 /home/WWW/docroot/wp-content/plugins/kboard/index.php(335): kboard_setting()\n#3 /home/WWW/docroot/wp-includes/class-wp-hook.php(308): kboard_list()\n#4 /home/WWW/docroot/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters()\n#5 /home/WWW/docroot/wp-includes/plugin.php(517): WP_Hook->do_action()\n#6 /home/WWW/docroot/wp-admin/admin.php(259): do_action()\n#7 {main}\n  thrown in /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php on line 643', referer: https://site.ac.kr/wp-admin/admin.php?page=kboard_list

[Thu Apr 13 11:13:13.513040 2023] [proxy_fcgi:error] [pid 17540:tid 140468386215680] [remote 211.x.x.30:39863] AH01071: Got error 'PHP message: PHP Warning:  Undefined array key "roles" in /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php on line 1240PHP message: PHP Fatal error:  Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, null given in /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php:1240\nStack trace:\n#0 /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php(1240): in_array()\n#1 /home/WWW/docroot/wp-content/plugins/kboard/index.php(390): include_once('...')\n#2 /home/WWW/docroot/wp-content/plugins/kboard/index.php(335): kboard_setting()\n#3 /home/WWW/docroot/wp-includes/class-wp-hook.php(308): kboard_list()\n#4 /home/WWW/docroot/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters()\n#5 /home/WWW/docroot/wp-includes/plugin.php(517): WP_Hook->do_action()\n#6 /home/WWW/docroot/wp-admin/admin.php(259): do_action()\n#7 {main}\n  thrown in /home/WWW/docroot/wp-content/plugins/kboard/pages/kboard_setting.php on line 1240', referer: https://site.ac.kr/wp-admin/admin.php?page=kboard_list

 

3. 확인 가능한 상세 페이지 주소

- 사이트 보안상 웹사이트를 공개할수 없어 위 로그에도 사이트 주소 및 접속 IP 주소를 임의로 변경했습니다.

 

4. 수정한 코드 내역 (있다면)

위 로그에 기록된 line 471, 502, 592, 616, 643, 1240 행 마다 순차적으로 아래 예시와 같은 식으로
"./plugins/kboard/pages/kboard_setting.php" 코드를 수정하여 게시판 설정 페이지에 500 오류 없이 들어갈 수 있었습니다.

- "line 471"인 경우 수정한 코드 예시
  원본: <?php if($key=='administrator' || in_array($key, $read_roles)):?>

  수정: <?php if($key=='administrator' || in_array($key, $read_roles ? $read_roles:[])):?>

- "line 1240"인 경우 수정한 코드 예시
  원본: <?php if($roles_key=='administrator' || in_array($roles_key, $item['roles'])):?>

  수정: <?php if($roles_key=='administrator' || in_array($roles_key, isset($item['roles']) ? $item['roles']:[])):?>


위와같이 수정하여 게시판 설정에 들어간 후, (아무런 변경없이)설정된 게시판 내용을 한번 저장을 해 주고나면,
위에 수정한 코드를 Kboard 배포 원본 코드로 롤백해도 이후로는 500 오류는 안 생깁니다.
이런 경험을 벌써 여러차례 하고 있는데요... 게시판 권한 설정 후 저장시 뭔가 꼬이면 이러한 오류가 발생되는 것 같아서 개선조치가 필요해 보입니다.

감사합니다.
 

 

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기

AI 상담