https://xetown.com/questions/1765944 에 대한 해결책입니다.

 

1. something.admin.controller.php 18행 if (count($obj->group) == 0) 이라는 구문을 if (isset($obj->group)) 로 수정.

2. something/tpl/config.html 131행 

 

<label for="grp_{htmlspecialchars($key)}" class="mgr14"><input type="checkbox" name="group[]" value="{$val->group_srl}" id="grp_{htmlspecialchars($key)}" checked|cond="in_array($val->group_srl, $config->group) "> {$val->title}</label>

이부분을 다음과 같이 수정

<label for="grp_{htmlspecialchars($key)}" class="mgr14"><input type="checkbox" name="group[]" value="{$val->group_srl}" id="grp_{htmlspecialchars($key)}" checked|cond="is_array($config->group) && in_array($val->group_srl, $config->group) "> {$val->title}</label>

 

 

  • profile

    어 그거.. 그렇게 하시면 안됩니다..!

    오류 내용 자세히 읽어보시면 string 이라는 문구가 들어가잇는데 in_array 두번째 인자 $config->group가 무조건 array이여야 하거든요. 근데 string 데이터로 들어갔다 하는거고.. 거기에서 변조 시켜버리면 실제 넣는 데이터가 흔들릴 수 잇습니다.

    그래서

    checked|cond="in_array($val->group_srl, $config->group) "
    이 부분을 전체로 바꿔주셔야 하는데요..!

    checked|cond="is_array($config->group) && in_array($val->group_srl, $config->group)"

    요롷게 수정하셔서 사용하시기 바랍니다..!

     

    그리고 윗부분 1번도.. empty 으로 채크하기보단 isset이 확실합니다..! if (isset($obj->group)) 

  • profile profile
    제가 사고쳤군요:; 바로 원글에 수정적용 하겠습니다. 답변 주셔서 감사합니다!
  • profile

    형변환은 99% 문제를 해결하기보다는 안보이게 감추는것이 될 뿐입니다.
    상처를 치료한답시고 소독이나 치료약 없이 종이로 덮어버리는 조치와 같습니다. 해결된것처럼 보여도 나중에 문제가 되죠.

  • profile profile
    조언 감사합니다! 원글 수정했습니다!