코드이그나이터 기반 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 35,577
공지 씨아이보드 3 배포 안내 +20 icon 관리자 11-09 37,654
51 Membermodify.php 에러 +1 스마일 11-01 2,478
50 comment 출력에 strip_tags 추가 부탁. +3 스마일 10-29 2,506
49 Social login 에러 +1 스마일 10-04 2,402
48 오류제보합니다. +1 아기새 10-02 4
47 dhtml_editor_helper Parse error Chris 08-09 2,989
46 게시물에 이미지 등록 후 삭제시 HJJ 07-28 2,993
45 글을 입력하고 수정/삭제/목록/답변 +1 마젠토 06-29 3,164
44 게시판 수정시 저장을 누를때 마젠토 06-29 2,843
43 베이직에서 프리미엄버전 (2.0) 으로 패치 업그레이드시 데이터베이스 … +1 Tammy 06-22 2,872
42 안녕하세요 +1 팔팔이 06-21 7
41 회원가입시 +1 팔팔이 06-21 7
40 Board_post 컨트롤러 nimrh2k 10-07 4
39 배너관리 - 배너수정시 캐시삭제오류 +2 nimrh2k 07-06 11
38 웹 관련 보고서 입니다. 김남훈 05-30 8
37 force_download 시 IE 와 EDGE 에서 한글 깨짐 현상 +1 BPP 05-28 9,523
36 게시판관리 댓글기능 : 댓글 입력시 이모티콘 +1 주니7 05-17 9
35 소소한 코딩 미스.. +1 주니7 05-10 9
34 버그 신고합니다. +2 쓰나리 04-04 5
33 상세보기 페이지 진입 시 js 에러 +1 김도완 03-15 9
32 쪽지오류 신고 +2 Chris 03-14 5