질문/조언질답게시판
Extra Form
PHP PHP 7.2
CMS Rhymix

가끔 이미지를 업로드하다보면

 

권한이 없습니다. 라고 나옵니다.

 

이부분이 뭐때문인지 모르겠는데 혹시 아시는분 계실까요?

4.PNG

  • profile

    이미지업로드 하는 파일의 크기제한에 걸린것이 아닌지 의심됩니다.

     

    단순 이미지업로드해주신 것처럼 증상을 보이는 것으로는 확인이 어렵습니다..

  • profile ?
    올린 이미지 용량은 kb 의 작은용량일때도 증상이 나타납니다 ㅠㅠㅠ
  • profile

    php.ini 설정 확인해주시구요. /files 디렉토리에 777 퍼미션 권한이 주어져야 합니다.

    또한 게시판 설정도 한번 확인해 주세요.

  • profile ?
    php.ini 파일에서 max 가 32MB 로 돼 잇어서 100MB로 변경했습니다.
  • ? profile
    폴더 퍼미션도 777으로 변경 했나요? 변경 하시고 업로드 잘 되는지 테스트 해보세요.
  • profile ?
    현재 퍼미션도 777 입니다 ㅠ

    이게 가끔뜨는거라 확인하는데 좀걸려요 ㅠㅠ
  • ? profile
    음 그럼 다른 기타 모듈이나 애드온 문제겠네요.
  • profile
    뭔가 순간적으로 로그인상태를 체크하지 못하는거 아닐까요?
    제가 방금 여기 XE타운에서 로그인 된 후 글쓰기 창을 연 다음 이후 다른 탭에서 XE타운을 열고 로그아웃을 했습니다.
    이때 글쓰기 창에서는 기존에 진행하던게 그대로 유지 되기 때문에 파일업로드를 시도 할 수 있습니다.
    파일업로드를 하면 말씀 하신 권한이 없다는 똑같은 창이 뜹니다.

    이후 보안정책상 허용이 안된다는 창도 하나가 더 뜹니다.

    제 추측으로는 제가 의도적으로 로그인정보를 잃게 한게 님 사이트에서는 간헐적으로 글쓰고 있는 동안 어느 순간 로그인 정보를 잃어(파일 업로드 순간) 메시지가 뜰 것 같습니다.

    왜 로그인이 순간적으로 확인이 안되는 현상이 발생하는지 찾아보는 것도....
  • ?

    저도 가끔식 저러던데

     

    다시 파일 첨부하면 또 올라가죠??

     

    Php.ini용량 문제는 아닐꺼에요

  • ? ?
    F5 하고 올려야 올라갑니다 ㅠ
  • profile

    파일이나 폴더의 퍼미션 문제는 아니라고 지난번에 확인을 했고... 세션 문제(윗분이 말씀하신 로그인 풀림 문제) 아니면 서드파티 자료가 잘못 끼어드는 문제로 추정됩니다.

     

    만약 세션 문제라면 해당 현상이 발생할 때 로그인이 풀리거나, 로그인이 풀리지 않더라도 단시간에 여러 개의 요청이 동시에 들어가면서 세션에 포함된 다른 데이터(에디터 시퀀스 등)에 혼란이 발생하는 것일 수도 있습니다. 글쓰기 창을 포함한 여러 탭을 동시에 연다거나, 백그라운드에서 AJAX로 실행하는 것이 있다거나...

     

    만약 코어의 로직이 잘못되었거나 서드파티 자료가 잘못 끼어들어서 권한이 없습니다(msg_not_permitted)라는 에러 메시지를 뿜는 경우라면 원인을 찾기가 좀더 어렵습니다. 코어와 여러 모듈에서 똑같은 메시지를 사용하니까요. 이 경우 파일 모듈의 업로드 액션(procFileUpload)에서 new BaseObject(-1, 'msg_not_permitted') 를 반환하거나 Rhymix\Framework\Exception\NotPermitted 를 던지는 곳을 찾아서 다른 것으로 바꿔보며 디버깅해야 어디에서 발생하는 에러 메시지인지 알 수 있습니다. 예를 들어 어딘가에서 msg_not_permitted라고 되어 있는 것을 zzz라고 바꿨더니 "권한이 없습니다." 대신 "zzz"라는 에러 메시지가 나온다!! 그러면 바로 그 곳에서 에러를 뿜고 있다고 추측할 수 있습니다.

  • profile

    일단 제일 의심되는 부분은 여기입니다. 만약 세션에 저장된 에디터 시퀀스가 꼬여서 발생하는 문제라면 여기에 걸릴 가능성이 높거든요.

    여기서 NotPermitted; 를 InvalidRequest; 로 바꿨을 때 "권한이 없습니다." 대신 "잘못된 요청입니다." 라는 에러가 나온다면 확실합니다. 반면, 여기를 수정했는데도 에러 메시지에 변화가 없다면 에디터 시퀀스 문제는 아닐 거라고 예측할 수 있습니다.

    에디터 시퀀스가 꼬이는 이유라면 위에서 말씀드린 것처럼 글쓰기 창을 포함하여 여러 탭을 동시에 열어서 그럴 수도 있고, 글쓰기 화면에 포함된 특정한 애드온이나 에디터 컴포넌트, 그 밖에 에디터와 관련된 어떤 기능이 시퀀스를 말아먹고 있어서일 수도 있습니다.

  • profile
    한 번 에러가 발생하면 그 화면에서는 더이상 업로드가 되지 않고 새로고침을 해야 한다 → 이것도 에디터 시퀀스가 꼬였을 때 발생할 수 있는 증상입니다. 에러가 났던 시퀀스값은 더이상 쓸 수 없는 것이지요.

    혹시 글이 자동저장될 때까지 기다렸다가 업로드하거나, 저장된 글을 불러와서 편집하는 경우에 에러가 발생하는지도 확인해 보시기 바랍니다.
  • profile ?
    확인해보겠습니다.

    답변감사합니다. 제발 해결되기를 ㅠㅠ
  • profile ?
    지금 또 떠서 진행해봤는데요

    자동저장 되고 업로드했는데 똑같이 안됩니다.

    저장된 글을 불러와서 편집하는경우에 발생하는지는 좀 봐야할것 같습니다.
  • ? profile
    그냥 해보라는게 아니고 위에 댓글에 보시면 기진곰님께서 알려주신 코드의 메시지를 따로 바꾼다음 동일한 문제가 발생할때 메시지가 바꾼거로 뜨는지 확인해 보라고 하셨는데.......
  • ? profile
    어떤 상황에서 에러가 발생하는지 특정할 수 있도록 여러 가지 실험을 해 보시라고 말씀드린 것입니다. 예를 들어 자동저장되기 전에 업로드하면 잘 되는데, 자동저장된 후에는 안 된다거나, 자동저장될 때까지 아무 것도 안 하다가 자동저장 후에 처음으로 업로드를 시도하면 안 된다거나, 그 상황에서 위에 링크해드린 소스를 바꿔봤더니 에러메시지가 달라진다거나...

    간헐적으로 발생하는 에러는 원인을 찾기가 정말 힘들거든요. 그래서 조금이라도 에러가 발생할 확률이 높은 상황이 어떤 상황인지 파악하여 반복 실험함으로써 데이터를 축적하는 것이 중요합니다.