본문 바로가기
CIBOARD 씨아이보드

CIBOARD 관리자 페이지 접속 500에러

by 씨엔아이소프트 2025. 12. 22.
반응형

ciboard 버전을 확인하는 부분인데, ciboard.co.kr 에서 문제가 있으면 관라지페이지 접속이 안되는 오류가 발생한다.


문제구간
application/libraries/Managelayout.php 82라인부분

$cachename = 'check_latest_version_from_ciboard_api';
$cachetime = 10800;
if ( ! $result = $CI->cache->get($cachename)) {
    $CI->load->library('Requests');
    $requests = new Requests();
    $requests->register_autoloader();
    $headers = array('Accept' => 'application/json');
    $postdata = array(
        'requesturl' => current_full_url(),
        'package' => CB_PACKAGE,
        'version' => CB_VERSION
    );
    $request = $requests->post(
        config_item('ciboard_check_latest_version'),
        $headers,
        $postdata
    );
    $result['latest_versions'] = json_decode($request->body, true);
    if (strtolower(CB_PACKAGE) === 'pro') {
        $result['latest_version_name'] = $result['latest_versions']['pro_version'];
        $result['latest_download_url'] = $result['latest_versions']['pro_downloadurl'];
    } else {
        $result['latest_version_name'] = $result['latest_versions']['lite_version'];
        $result['latest_download_url'] = $result['latest_versions']['lite_downloadurl'];
    }
    $CI->cache->save($cachename, $result, $cachetime);
}
$data['version_latest'] = $result;

 

다음으로 교체

$cachename = 'check_latest_version_from_ciboard_api';
$cachetime = 10800;

/* 기본값 세팅 (외부 통신 실패 대비) */
$result = array(
    'latest_versions' => array(),
    'latest_version_name' => '',
    'latest_download_url' => '',
);

if ( ! $cached = $CI->cache->get($cachename)) {

    try {
        $CI->load->library('Requests');
        $requests = new Requests();
        $requests->register_autoloader();

        $headers = array('Accept' => 'application/json');
        $postdata = array(
            'requesturl' => current_full_url(),
            'package'    => CB_PACKAGE,
            'version'    => CB_VERSION
        );

        $request = $requests->post(
            config_item('ciboard_check_latest_version'),
            $headers,
            $postdata,
            array(
                'timeout' => 2,
                'connect_timeout' => 2,
            )
        );

        if (isset($request->body)) {
            $json = json_decode($request->body, true);
            if (is_array($json)) {
                $result['latest_versions'] = $json;

                if (strtolower(CB_PACKAGE) === 'pro') {
                    $result['latest_version_name'] =
                        element('pro_version', $json);
                    $result['latest_download_url'] =
                        element('pro_downloadurl', $json);
                } else {
                    $result['latest_version_name'] =
                        element('lite_version', $json);
                    $result['latest_download_url'] =
                        element('lite_downloadurl', $json);
                }
            }
        }

        $CI->cache->save($cachename, $result, $cachetime);

    } catch (Exception $e) {
        /* 외부 서버 장애 시 완전 무시 */
        $CI->cache->save($cachename, $result, $cachetime);
    }

} else {
    $result = $cached;
}

$data['version_latest'] = $result;
반응형

댓글