코드이그나이터 기반 PHP 오픈소스 게시판 : 씨아이보드

Config_model.php > meta_update() 의 empty() 함수의 문제

CIBOARD 처음써보는데 좋네요~!!


한가지 버그를 발견하여 적습니다.


관리자 메뉴에서 설정값들은 cb_config 테이블에 저장되어 지는데요. 0인 값을 제대로 저장하지 못합니다.

​원인을 찾아보니 저장될 값들은 Config_model.php 의 meta_update() 함수를 거치는데


$old_value = $this->item($column);

if (empty($value)) {

$value = '';

}


이 부분이 문제가 됩니다.

아마 null 인 값들을 '' 로 치환해주는게 목적인 것 같은데 

empty() 함수는 null, 공백문자열 외에도 0 또한 true를 반환합니다. 따라서 $value에 0이 넘어온다면 '' 로 바꿔버립니다.

이로 인해 관리자에서 0으로 설정된 값이 있는 상태에서 [저장하기]를 누르면 '' 로 저장이 되고 다시 불러올 때에는 Non-numeric PHP Warning 문구가 나타납니다.


저는 [회원가입 설정]-[로그인] 탭의 "비밀번호갱신주기"를 0으로 변경하고 저장하였더니 위와 같은 문제가 발생하였고,

다른 값 들도 0으로 변경해보니 전체적으로 동일한 문제가 발생했습니다.


empty 함수는 0을 처리못하니 is_null() 이나 isset() 함수를 이용하여 null, undefined 예외를 처리하는게 좋을 것 같습니다.



테스트환경: Ubuntu 16.04 LTS / Apache 2.4 / PHP 7.2 / MariaDB



버그신고

번호 제목 글쓴이 날짜 조회수
공지 Github 운영을 시작합니다 +13 icon 관리자 11-19 48,667
공지 씨아이보드 3 배포 안내 +20 icon 관리자 11-09 47,231
31 모바일에서 쪽지보기시 서버오류가 발생합니다. +8 나이수 03-04 10
30 오류인가요? +1 가마니 02-20 3
29 CB.Basic.1.4.2 모바일 +1 wincmd 02-05 7
28 업데이트 이후 +1 stormix 02-03 5
27 버그신고 +2 INX 01-27 5
26 ssl 적용 후 레이아웃 깨짐 + 그림파일 로드 안됨 +3 썽민2 01-26 5,733
25 글쌔요 nginx라서 그런지 +3 stormix 01-26 4,113
24 버그는 아닌 것 같습니다만 설치 후 도메인 변경시 +1 썽민 01-20 3,933
23 1.3.8 +2 stormix 01-14 7
22 설치오류 +2 ChrisCheon 01-12 10
21 게시판그룹관리 오류 +1 썽민 12-30 4,656
20 베이직버전 패스워드 찾기 버그 문의 +1 썽민 12-28 3,531
19 읽는 곳(post)에서 페이지 관련 외.. +3 이그나이터 11-30 10
18 스마트에디터 게시글 작성시 썸네일의 링크가 엑박으로 나옵니다. +2 GilbertYu 11-27 6
17 개선 사항 8 +8 Tammy 11-16 11
16 버그신고 7 +3 Tammy 11-16 9
15 버그 리포트 +2 ChrisCheon 11-12 10
14 버그 신고 6 +3 Tammy 11-03 8
13 보그신고. +1 김남훈 10-30 4
12 버그 신고 5 +3 Tammy 10-27 9