채택완료

php7.x 버전 count 에러에 관해서

2019-08-23 (금) 10:37:41 5,313

어찌하다보니 2038512418_1566523680.1674.png를 사용하게 되었고 기분탓인가 속도가 빠른 느낌입니다..

아래는 글작성 등록시  에러메시지입니다.

2038512418_1566523868.7042.png

write_update.php(원본입니다)

430줄

$upload_count = count($_FILES['bf_file']['name']);

---------------------------------------------------------

455줄

for ($i=0; $i<count($_FILES['bf_file']['name']); $i++) {

define('G5_GNUBOARD_VER', '5.3.2.8');

원본사용입니다.  어델 손봐야 하는지요...미리 감사합니다.

답변 5개 / 댓글 10개

채택된 답변
+20 포인트

count($_FILES['bf_file']['name']);

php 72버전부터 해당 값이 없는경우 count 함수호출이 되지 않습니다.

즉 파일업로드가 없는경우 에러를 발생할 겁니다.

최신버전의 그누보드는 오류가 발생하지 않으니 업데이트를 권장해 드립니다.

답변에 대한 댓글 6개

아하... 최근버전 그누보드는 되나요? 감사합니다.. 사용토록 하겟습니다.^^^
최신버전 다운로드(ZIP) : https://github.com/gnuboard/gnuboard5/zipball/master
에서 경로/bbs/write_update.php 만 교체하였습니다.
흠 .. 에러가 나오는데요..
혹시 skin족에서 파일업로드 기능을 빼버리셨나요???
아..네.. 제가 write.skin.php를 좀 만져서 파일업로드 기능은 없앴습니다.만.. 그럼 우찌해야...
네 그것때문에 에러가 나는겁니다.

주석처리를 하지 마시고 해당 부분을 히든처리 하시기 바랍니다.
흠,, 주석처리 '//'
가 아닌 값 넘길때 hidden 이거로 하라는 말씀이신지요..
알겠습니다.. 해보겠습니다.

이렇게 해 보니 해결(?)된 듯 에러는 없어졌습니다.
php7.3.7상태 입니다.  define('G5_GNUBOARD_VER', '5.3.2.8');  

write_update.php 

두 곳인데요

1. 수정전
           

Copy
$upload_count = count($_FILES['bf_file']['name']);


1. 수정후

        

Copy
if (is_array($_FILES['bf_file']['name']) ) {   //추가
                 if ($row_file['bf_file'] > count($_FILES['bf_file']['name'])) {  //추가
                     $upload_count = count($_FILES['bf_file']['name']);

                 }  //추가
             }  //추가
 

2. 수정전
           

Copy
for ($i=0; $i<count($_FILES['bf_file']['name']); $i++) {


2. 수정후

        

Copy
if (is_array($_FILES['bf_file']['name']) ) {   //추가


for ($i=0; $i<count($_FILES['bf_file']['name']); $i++) {

---중략

             }  //추가

----------------

이게 현재  에러는 없는데요.. 답이 맞는지는 모르겠습니다.

눈팅한 것입니다.

github.com/Automattic/jetpack/issues/8420 

카운트하는 배열이 있는지 부터 체크하고 시작하면 Warning이 없어집니다.

답변에 대한 댓글 1개

넵,, 감사합니다..

php버전을 바꾸어보니 7.1까지는 에러가 안보입니다.

2038512418_1566528700.8548.png

7.2.20  -- count 에러

7.3.7 ---count에러 발생

제가 확인한 바로는 이러합니다.

php7.1.30 에는 글등록 에러없이 잘 되는군요

진정한 답은 아니지만..

검색하다보니 7.2에서 함수에러가 난다는 글이 있더군요

위 상위 php버전사용하고픈데요,, 출력 에러메시지 피하려면  어떻게 수정해야 하나요..

감사합니다~

해당 카운트 체크하는 파라미터 정보가 배열이나 오브젝트 방식인데 잘못된 그냥 파일명으로 체크하면서 발생되는 오류로 보여집니다.

답변에 대한 댓글 3개

그누 다운로드 원본이라 php버전을 내려야 하나 고민입니다..ㅠㅠ
이건 버전의 문제가 아니라 기능의 문제인듯 합니다. 아니면 데이터를 배열로 못받아 오는듯 합니다.
아..그렇군요? 제가 write.skin.php를 좀 만져서 일까요,, 공부하고 질문드려야겠네요..감사합니다.

답변을 작성하려면 로그인이 필요합니다.