A PHP Error was encountered : Undefined index

A PHP Error was encountered : Undefined index

QA

A PHP Error was encountered : Undefined index

본문


public function get_contents()
    {
        $param = $_POST["param"];
        $this->output($this->Madmin->get_contents($param));
    }

public function get_contents($param)
    {
        $category_id_list = isset($param["category_id_list"]) ? $param["category_id_list"] : [];
        if (empty($category_id_list)) {
            $result["count"] = 0;
            $result["list"] = [];
            return $result;
        }
        
        $this->db->start_cache();
        $cname=[];
        $cname["c_1"] = "1";
        $cname["c_2"] = "2";
        $cname["c_3"] = "3";
        $cname["c_4"] = "4";
        $sql = "(";
        $bFirst = true;
        foreach($category_id_list as $tablename){
            $s = "select A.create_time as create_time, A.user_id user_id, '{$tablename}' as category_id, B.nickname user_nickname, '{$cname[$tablename]}' as category_name";
            $s .= " from " . $tablename . " A";        
            $s .= " left join user B on A.user_id = B.id";
            if (!empty($param["keyword"]))
                $s .= " where B.nickname like '%{$param["keyword"]}%'";
            $s .= " group by A.user_id";
            if(!$bFirst){
                $sql .= " UNION ALL ";
            }
            $bFirst = false;
            $sql .= "(" . $s . ")";
        }
        $sql .= ") as calc";
        $this->db->select("*");
        $this->db->from($sql);
        
        $this->db->stop_cache();
        $result = [];
        $result["count"] = $this->db->count_all_results();
        $this->db->order_by("create_time", "asc");
        $this->db->limit($param["itemsByPage"], ($param["page"] - 1) * $param["itemsByPage"]);
        $result["list"] = $this->db->get()->result_array();
        $this->db->flush_cache();
        return $result;
    }

 

원래는 문제없이 잘 작동되었었는데, 갑자기 A PHP Error was encountered 오류가 뜨면서 데이터를 받아오지 못하더라구요... 며칠전에 aws에서 스냅샷 복구하면서 소스코드가 꼬인건가 싶어서 백업해둔 기존 코드랑 비교해보고 바꿔도 안되네요... 방법이 없을까요...

 

3530079757_1658707817.9328.png

이 질문에 댓글 쓰기 :

답변 1

에러알림이 켜진거 같네요. Notice 를 꺼버리면 되는데 여러 방법이 있습니다.

코드이그나이터3 인거 같은데(아닐수도 있구요).

application/config/config.php 맨 위에다가 아래 코드를 넣어보세요.

이렇게 하면 될려나. 안되면 다른 방법을 찾아보시길

 


ini_set('display_errors', '1'); // 아예 에러를 꺼버리려면 0으로
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED); // 옵션을 바꿀 수 있습니다.

 

~E_NOTICE 가 notice를 끄는 구문입니다.

 

참고로 CI3는 메인 index.php  맨 위에  error_reporting() 함수가 있다고 합니다. 그 부분이 있다면 거길 수정하셔도 될듯합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 38
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT