Extra Form
PHP PHP 7.2
CMS XpressEngine

https://github.com/huhani/xe-sticker/blob/master/sticker.controller.php#L661-L662

 

 

스티커 모듈을 설치하고 스티커 세트를 등록하려고 파일 업로드를 한 후 등록 버튼을 누르면..

 

위 링크의 코드 메시지가 발생하고 중지 됩니다.

 

if(!$obj->sticker_main_file || !$obj->sticker_file)

 

위 두 가지 조건 중 어느것인지 확인해 보기 위해 한가지씩 제거를 해 보고 테스트를 해보니

 

if(!$obj->sticker_file)

이부분이 문제로 확인 되었습니다. $obj->sticker_file 값이 없는 것으로 추정이 됩니다.

위 조건을 제거하고 시도해 보면..

 

https://github.com/huhani/xe-sticker/blob/master/sticker.controller.php#L671-L673

 

위 코드에 의해  file_is_not_enough  가 발생합니다.

 

$sticker_count  도 제대로 인식하지 못하고 있는 것 같구요..

 

 

아래 부분이 관련이 있는건지 모르겠습니다.

https://github.com/huhani/xe-sticker/blob/master/sticker.controller.php#L741-L761

  • profile
    Xe는 저러는데 라이믹스에서는 잘되더라구요 ㅠㅠ
  • profile profile
    php 7.1 부터 오류가 있어 보입니다.
  • ?
    확인해보니 xe코어 index.php에서 $oContext->init()가 된 이후에 사용자 브라우저단에서 보냈던 sticker_file 정보가 증발해버리네요..

    어째서인지는 좀 더 확인해봐야겠지만 확인되는대로 패치하겠습니다.
  • ?

    https://github.com/xpressengine/xe-core/blob/6c018e0e2d0dc75ad01c0f881d45d56a5a643097/classes/context/Context.class.php#L1500,L1513

    확인을 해보니
    xe 코어에서 파일 배열 데이터를 가져올때 만약 배열이 비어있는 경우엔 $_FILES 배열의 값을 날려버려서 발생한 문제더군요..
    라이믹스에선 이 부분에 대해 대처가 되어있어서 정상작동 하는걸로 보여집니다.

    https://github.com/rhymix/rhymix/blob/1d22aa9a448c84cf09548c884b11cd378a1610df/classes/context/Context.class.php#L1274,L1297


    일단 임시조치 방법은
    if($val['name'] === '' && $val['size'] == 0)
    {
    continue;
    }

    이 코드를 첫 번째 링크에 있는 파일(/classes/context/Context.class.php)을 두 번째 링크에 있는것 처럼 if문 안쪽과 else문 안쪽의 foreach문에다 삽입하시면 됩니다.

    모듈을 만들때 xe환경에서 만들었었는데 지금와서 작동을 안할줄이야 ㅠㅠ

    이 문제에 대해 깃허브다에 이슈를 넣어야겠네요.

  • ? profile
    감사합니다. 해당 부분 적용하니 잘 되네요. 코어에 반영될 수 있도록 해주면 감사하겠습니다.
  • ? profile

    최고관리자계정이 아닌 일반계정으로 등록시 위 조치가 적용되지 않는데요. 혹시 일반회원에게도 적용하려면 어디를 수정해야 할까요?

     

     

    https://github.com/rhymix/rhymix/blob/1d22aa9a448c84cf09548c884b11cd378a1610df/classes/context/Context.class.php#L1294,L1297

     

    이부분도 추가로 적용해주니 일반회원도 잘 되네요.

  • profile profile
    웹지기님
    Context.class.php 파일에

    if($val['name'][$i] === '' && $val['size'][$i] == 0)
    {
    continue;
    }

    이걸 적용했는데 file is not exist 에러 때문에 업로드 안됩니다 ㅠ_ㅠ
    php7.3에서는 안되는건가요?
  • profile profile

    코어에서 반영되어야 하는 부분으로 php 버전과는 무관할 것 같구요.
    최고관리자부분, 일반계정 부분 2부분을 수정해줘야 합니다.

    물론 저도 스티커 모듈 개발자님이 위에 답변 주신 내용대로 한 것입니다.
     

  • profile profile
    저도 php 7.3버전이고 라이믹스 1.9.9.9 최신 버전인데 그러내요. 웅돌프님 혹시 해결하셨나요?
  • profile profile
    넵! 저는 해결해서 사용중입니다.
  • profile profile
    라이믹스는 원래 되어야 합니다.
  • profile profile

    스크린샷 2021-05-01 19.57.15.png

     

    스티커 모듈 설치중입니다. 게시판 보드는 스케치북에서 paper board로 교체 했는데요

    이 보드가 스티커 모듈을 지원한다고 해서 해보려는데 저기 위에 

    이미지 파일을 업로드 하면 

    file_is_not_enough 이런 메세지가 뜨네요. 

    저는 라이믹스인데 왜 이런 메세지가 뜰가요.

  • profile profile

    글쎄요. 저도 모르는 내용이라서요. 스킨과 관계없는 내용입니다.

  • profile profile
    https://xetown.com/tips/1530568 파일로 변경해서 하니 저 부분은 넘어가고 이미지 등록까지는 성공 했네요. 조금더 헤메면 곧 해결이 될것 같긴 합니다.
  • profile profile
    라이믹스 최신버전에서 문제가 생기나 보네요. 저는 최근에는 스티커를 등록해보지 않아 잘 모르겠네요.
  • profile profile
    페이퍼 보드쪽에서는 계속 사용하시는 것 같더라구요. 모듈지원이라고 되어 있어서 해보려고 했는데 좀 더 만져보다가 안되면 포기해야 할것 같습니다.
  • profile profile

    스크린샷 2021-05-01 20.17.22.png

     

    스티커 모듈이 되긴하네요. 그런데 저기 맨앞에 깨지는 파일이 뭔지 잘 모르겠습니다. 스티커 구매전부터 있는거보니

    뭔가 디폴트 파일 같은건지 잘모르겠는데 혹시 전에 사용하실때 어떤 이미지였는지 기억나실까요?

  • profile profile
    라이믹스 2.0 에서 생기는 문제입니다. js 부분 수정하셔야 하니 검색해보세요. 아까 파일 받으셨다는 게시글에 관련 링크가 있을 겁니다.
  • profile profile
    정말 감사 합니다!
  • profile profile
    한가지만 더 질문 드리겠습니다.
    "저희는 스티커 리스트 로드하는 부분(loadSticker)에서 if문으로 값이 없는 스티커를 로드하지 않도록 감쌌습니다."
    라고 되어 있는데 리스트를 로드하는 부분이라는게 sticker.js 와 sticker_mob.js 파일에 해당 부분을 if문으로 감싸라는것 아닌가요? 스티커컨트럴러 php과 위 두 js 파일 코드 수정 했는데 엑박 현상은 그대로네요.
  • profile profile

    스킨 판매자분께 문의해보세요. js 는 스킨과 연관이 있습니다.

     

    https://xetown.com/questions/1493840#comment_1494224

     

    위 댓글 처럼  js 파일에서 해당부분을 수정하라는 것입니다.

  • profile profile
    네 스킨 판매자분은 스킨만 지원하고 모듈은 별도 문의 받지 않는다고 하셨는데 조금전 혹시나 해서 게시글을 남기고 왔습니다.