코드이그나이터 기반 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 운영을 시작합니다 +12 icon 관리자 11-19 13,426
공지 씨아이보드 3 배포 안내 +18 icon 관리자 11-09 15,122
70 ci보드 사이트 글쓰기 시 애디터의 인용구 기능을 쓰면 코드가 같이 vi… g901 06-02 326
69 페이스북 로긴 고장 미친놈이자꾸해킹합니다 03-29 1
68 아에 실행이 안됩니다 junseopWhang 11-28 256
67 예치금 deposit 컨트롤러 오류 shiaru 10-08 4
66 틀린글자 배고파 05-11 1
65 ciboard_pro 3.0.3 관리자 회원정보 수정 배열선언 문제 -71 12-18 1
64 설치할때 문제 있네여 히팝디벨롭 03-24 1
63 facebook plugin 버전업 필요 도시인 02-08 4
62 사소한거 하나 +1 ceoseo 12-06 5
61 다음주소 로딩의 건. ceoseo 12-05 2
60 사소한 버그들 --> 각종 태그 안닫힘류. +1 ceoseo 12-03 5
59 5MB 넘는 이미지 첨부 또는 사진넣기로 추가시 +1 적토마 11-19 3
58 기본 폰트 +1 스마일 11-18 607
57 글 수정시 파일 교체하면 모든 게시글의 파일이 교체되는 문제 +2 강건너사자 11-15 593
56 안녕하세요. +1 위토즈소프트 11-15 4
55 Config_model.php > meta_update() 의 empty… +3 강건너사자 11-14 766
54 thumbnail directory 퍼미션 스마일 11-07 5
53 Social Login : naver 에러 +1 스마일 11-03 579
52 https 웹사이트 패치 스마일 11-03 746
51 Membermodify.php 에러 +1 스마일 11-01 562