Extra Form
PHP PHP 7.2
CMS Rhymix

제목 그대로입니다.

 

홈페이지의 게시판이 모바일에서 글을 쓰려고 하면 "no input file specified." 이 뜹니다.

 

사실 글이 안써져야 하는것은 맞습니다. 회원들만 글을 쓸 수 있게 했거든요.

 

그런데 글을 못쓸거라면 '쓰기' 버튼이 없거나

 

아니면 '로그인 후 글 작성하세요.' 등의 내용이 있어야 로그인을 하고 글을 쓸텐데

 

no input file specifie 라고 뜨면 홈페이지가 에러난 것처럼 보이지 로그인을 해야 한다고 생각이 들지는 않을 것 같아서요.

 

어떻게 해결할 수 있을까요?

 

예시 페이지 2개를 첨부해봅니다.

 

https://9tschool.net/xe/year20bbs

https://9tschool.net/xe/year20photo

 

모바일 보드는 스케치북 입니다.

  • ?
    아, 지금보니 PC에서도 '쓰기' 버튼이 뜨네요. 비회원이 게시판에 접속했을 때 '쓰기' 버튼이 안 뜨거나 쓰기 버튼을 눌렀을 때 '로그인하세요.' 등 의 경고창이 뜨게 할 수는 없을까요?
  • profile

    https://9tschool.net/xe/index.php?mid=year20bbs&act=dispBoardWrite

    https://9tschool.net/xe/index.php?mid=year20photo&act=dispBoardWrite

    https://9tschool.net/xe/index.php?module=admin

    등등... PC에서도 에러나는 주소가 꽤 많네요.


    1. 혹시 서버 설정이나 .htaccess에서 ErrorDocument를 설정해 놓은 것이 있다면 지워 보세요.

    2. /xe/ 폴더로 넘어가도록 하기 위해 .htaccess를 건드려 놓은 것이 충돌하고 있을 가능성도 있습니다.

     

    쓰기 버튼이 뜨지 말아야 하는데 뜨는 것은 스킨 문제입니다.

  • profile ?

    호스팅 사에 문의해봐야 할까요? 자체 서버가 아니고 호스팅 이라서요..

  • profile ?
    아니면 스케치북 스킨을 어떻게 수정할 수 있을까요? '쓰기' 버튼이 뜨지 않도록이요..
  • ? profile
    /xe/ 폴더로 넘어가는 것을 보면 .htaccess 파일을 건드리신 것이 분명하니 그것부터 확인해 보세요. /xe/ 폴더 안에 있는 것과 밖에 있는 것 모두요. 스킨 수정은 그 다음 문제입니다. 글쓰기 링크 외에도 에러나는 곳이 많거든요.
  • profile ?
    xe폴더 내외부 모두 .htaccess 파일이 있습니다.
    내부의 파일 소스는 아래와 같습니다.

    RewriteEngine On

    # block direct access to templates, XML schema files, config files, dotfiles, environment, etc.
    RewriteCond %{REQUEST_URI} !/modules/editor/(skins|styles)/
    RewriteRule ^(addons|common/tpl|files/ruleset|(m\.)?layouts|modules|plugins|themes|widgets|widgetstyles)/.+\.(html|xml)$ - [L,F]
    RewriteRule ^files/(attach|config|cache/store)/.+\.(ph(p|t|ar)?[0-9]?|p?html?|cgi|pl|exe|[aj]spx?|inc|bak)$ - [L,F]
    RewriteRule ^files/(env|member_extra_info/(new_message_flags|point))/ - [L,F]
    RewriteRule ^(\.git|\.ht|\.travis|codeception\.|composer\.|Gruntfile\.js|package\.json|CONTRIBUTING|COPYRIGHT|LICENSE|README) - [L,F]

    # static files
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteRule ^(.+)/(addons|files|layouts|m\.layouts|modules|widgets|widgetstyles)/(.*) ./$2/$3 [L]
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteRule ^(.+)\.min\.(css|js)$ ./$1.$2 [L]

    # rss, blogAPI
    RewriteRule ^(rss|atom)$ ./index.php?module=rss&act=$1 [L]
    RewriteRule ^([a-zA-Z0-9_]+)/(rss|atom|api)$ ./index.php?mid=$1&act=$2 [L]

    # trackback
    RewriteRule ^([0-9]+)/(.+)/trackback$ ./index.php?document_srl=$1&key=$2&act=trackback [L]
    RewriteRule ^([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback$ ./index.php?mid=$1&document_srl=$2&key=$3&act=trackback [L]

    # document category
    RewriteRule ^([a-zA-Z0-9_]+)/category/([0-9]+)$ ./index.php?mid=$1&category=$2 [L,QSA]

    # document permanent link
    RewriteRule ^([0-9]+)$ ./index.php?document_srl=$1 [L,QSA]

    # admin module link
    RewriteRule ^admin/?$ ./index.php?module=admin [L,QSA]

    # mid link
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule ^([a-zA-Z0-9_]+)/?$ ./index.php?mid=$1 [L,QSA]

    # mid + document link
    RewriteRule ^([a-zA-Z0-9_]+)/([0-9]+)$ ./index.php?mid=$1&document_srl=$2 [L,QSA]

    # mid + entry title
    RewriteRule ^([a-zA-Z0-9_]+)/entry/(.+)$ ./index.php?mid=$1&entry=$2 [L,QSA]

    답변해주신 'ErrorDocument' 를 찾으려 했는데 찾을수가 없네요.
    외부의 .htacess에도 'ErrorDocument'라는 문구는 없습니다. 다른 검색어로 검색을해볼까요?
    자세히 답변해주시는데 잘 몰라서 죄송합니다.
  • profile ?
    말씀대로 xe 폴더 외부에도 .htacess가 있었습니다. 그 소스는 아래와 같습니다.

    RewriteCond %{HTTP_HOST} ^www\.9tschool\.net [NC]
    RewriteRule ^(.*)$ http://9tschool.net/$1 [L,R=301]
    RewriteEngine On
    RewriteRule ^(.*) /xe/$1 [R=301,L]
    # deny access to files that may contain sensitive information
    RewriteRule ^(.*/)?\.(editor|git|ht|jshint|travis) - [L,F]
    RewriteRule ^(codeception(.*)\.yml|composer(.*)\.(json|lock)|package\.json)$ - [L,F]
    RewriteRule ^files/(attach|config|cache/store)/.+\.php$ - [L,F]
    RewriteRule ^files/(env|member_extra_info/(new_message_flags|point))/ - [L,F]
    # reserve XE Layout Template Source File (*.html)
    RewriteRule ^(layouts|m.layouts|files/faceOff)/(.+)\.html$ - [L,F]
    # reserve XE Template Source Files (*.html)
    RewriteCond %{REQUEST_URI} !/modules/editor/
    RewriteRule /(skins|m.skins)/(.+)\.html$ - [L,F]
    # conf, query, schema
    RewriteRule ^(modules|addons|widgets)/(.+)/(conf|queries|schemas)/(.+)\.xml$ ./index.php [L]
    # static files
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteRule ^(.+)/files/(member_extra_info|attach|cache|faceOff)/(.*) ./files/$2/$3 [L]
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteRule ^(.+)/(files|modules|widgets|widgetstyles|layouts|m.layouts|addons)/(.*) ./$2/$3 [L]
    # rss , blogAPI
    RewriteRule ^(rss|atom)$ ./index.php?module=rss&act=$1 [L]
    RewriteRule ^([a-zA-Z0-9_]+)/(rss|atom|api)$ ./index.php?mid=$1&act=$2 [L]
    RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/(rss|atom|api)$ ./index.php?vid=$1&mid=$2&act=$3 [L]
    # trackback
    RewriteRule ^([0-9]+)/(.+)/trackback$ ./index.php?document_srl=$1&key=$2&act=trackback [L]
    RewriteRule ^([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback$ ./index.php?mid=$1&document_srl=$2&key=$3&act=trackback [L]
    RewriteRule ^([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback$ ./index.php?vid=$1&document_srl=$2&key=$3&act=trackback [L]
    RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback$ ./index.php?vid=$1&mid=$2&document_srl=$3&key=$4&act=trackback [L]
    # document permanent link
    RewriteRule ^([0-9]+)$ ./index.php?document_srl=$1 [L,QSA]
    # mid link
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule ^([a-zA-Z0-9_]+)/?$ ./index.php?mid=$1 [L,QSA]
    # mid + document link
    RewriteRule ^([a-zA-Z0-9_]+)/([0-9]+)$ ./index.php?mid=$1&document_srl=$2 [L,QSA]
    # vid + mid link
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/?$ ./index.php?vid=$1&mid=$2 [L,QSA]
    # vid + mid + document link
    RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)$ ./index.php?vid=$1&mid=$2&document_srl=$3 [L,QSA]
    # mid + entry title
    RewriteRule ^([a-zA-Z0-9_]+)/entry/(.+)$ ./index.php?mid=$1&entry=$2 [L,QSA]
    # vid + mid + entry title
    RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/(.+)$ ./index.php?vid=$1&mid=$2&entry=$3 [L,QSA]
    #shop / vid / [category|product] / identifier
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_\.-]+)$ ./index.php?act=route&vid=$1&type=$2&identifier=$3 [L,QSA]
    ###Start Kloxo PHP config Area
    ### begin content - please not remove this line
    #<IfModule mod_rewrite.c>
    # ## MR -- authentically for letsencrypt for webroot-based
    # RewriteRule /\.|^\.(?!well-known/) - [F]
    #</FilesMatch>
    ### MR -- using php version different with default php
    ### 1. Using suphp
    ### - Copy between '#<FilesMatch \.php$>' to '#</FilesMatch>' and
    ### then remove '#' from '#<FilesMatch', '#</FilesMatch>' and one of '#SetHandler'
    #<FilesMatch \.php$>
    #SetHandler x-httpd-php
    #SetHandler x-httpd-php52
    #SetHandler x-httpd-php53
    #SetHandler x-httpd-php54
    #SetHandler x-httpd-php55
    #SetHandler x-httpd-php56
    #SetHandler x-httpd-php70
    #SetHandler x-httpd-php71
    #</FilesMatch>
    ### OR
    ### 2. Using fcgid
    ### - Copy from '#Options' to '#FCGIWrapper' and
    ### then remove '#' for one of '#FCGIWrapper'
    #Options +ExecCGI
    #<FilesMatch \.php$>
    # SetHandler fcgid-script
    #</FilesMatch>
    #FCGIWrapper /usr/bin/php-cgi .php
    #FCGIWrapper /usr/bin/php52m-cgi .php
    #FCGIWrapper /usr/bin/php53m-cgi .php
    #FCGIWrapper /usr/bin/php54m-cgi .php
    #FCGIWrapper /usr/bin/php55m-cgi .php
    #FCGIWrapper /usr/bin/php56m-cgi .php
    #FCGIWrapper /usr/bin/php70m-cgi .php
    #FCGIWrapper /usr/bin/php71m-cgi .php
    ### end content - please not remove this line
    ###End Kloxo PHP config Area

    이 아이는 조금 더 기네요.

    다른것은 다 비슷비슷한 얘기이고 맨 첫번째 4~5줄 때문에 그런것이 아닌가 생각은 드는데요.

    혹시 수정해야할 점이 있을까요?
  • ? profile
    중복되는 것이 많네요. 외부에 있는 .htaccess는 맨 처음 4~5줄만 빼고 모두 지우셔도 되겠습니다. 그런데 그게 원인인 것 같지는 않고요... ErrorDocument 설정은 호스팅 업체에서 강제로 적용하는 것인지도 모르겠습니다.

    혹시 /xe/ 폴더 외부에 index.php 파일이 있나요? 없다면 그냥 빈 파일 하나 만들어서 넣어보고 (/xe/ 폴더 안에 있는 index.php를 복사하지 마세요) 혹시 증상이 달라지는지 확인해 보세요.
  • profile ?
    말씀하신대로 xe외부의 .htacess 파일은 수정하겠습니다.
    /xe/ 폴더 외부에 index.php 파일이 있습니다.

    그래서
    9tschool.net/index.php 로 주소창을 치면
    9tschool.net/xe/index.php로 자동이동하여 페이지가 뜹니다.
  • ? profile

    그럼 .htaccess나 index.php 문제는 아닌 것 같네요.

    /xe/ 폴더 안이든 밖이든 어딘가에 test.php라는 (또는 그 비슷한) 파일을 하나 새로 만들어
    아래의 내용을 넣고 저장한 후, 그 파일 주소에 접속해 보세요.

    <?php
    header('HTTP/1.1 403 Forbidden');
    echo 'TESTING';
    ?>

    제 예상이 맞다면 TESTING 이라고 나오는 것이 아니라 No input file specified. 라고 나올 것입니다. 만약 그렇다면 "PHP에서 나와야 하는 에러화면이 이상하게 나온다. ErrorDocument 설정으로 에러화면을 가로채려다가 또다른 에러가 발생하는 것 같다."라고 위의 파일 내용 및 주소를 첨부하여 호스팅 업체에 문의하셔야 합니다.

    굳이 테스트파일을 만들어서 실험해 보고 문의하라고 말씀드리는 이유는, 대부분의 호스팅 업체들이 RXE를 보면 무조건 고객 책임 또는 RXE 내부 문제라고 주장하기 때문에 그럴 빌미를 주지 않기 위해서입니다.

  • profile ?
    와 정말 정확하네요. 감사합니다.

    " xe폴더 안과 밖 모두 test.php 라는 파일을 만들고

    <?php
    header('HTTP/1.1 403 Forbidden');
    echo 'TESTING';
    ?>

    라고 하고 파일주소에 접속해봤습니다.
    TESTING 이라고 나오는 것이 아니라 No input file specified. 라고 나옵니다.
    PHP에서 나와야 하는 에러화면이 이상하게 나오는거죠.. ErrorDocument 설정으로 에러화면을 가로채려다가 또다른 에러가 발생하는 것 같습니다.

    주소를 첨부해봅니다.
    https://9tschool.net/test.php
    https://9tschool.net/xe/test.php " 라고 문의해봤습니다. 결국 호스팅사가 좀 적극적으로 해결해주면 좋으련만..
    자꾸 .htacess에다가 에러문구를 추가하라는 답변만 하네요.
    혹시 php설정과는 관련이 없을지요? 구글링을 해보니 php 이야기도 좀 나오네요.
  • profile ?
    호스팅사가 뭔가를 수정해줬는지 test.php는 잘뜨네요... 그러나 원래의 문제는 그대로입니다...ㅠㅠ
  • ? profile
    에러나는 글쓰기 화면 주소를 알려주고
    여기도 마찬가지입니다. 라고 해야겠네요.
  • profile ?
    늦게까지 정말 감사합니다. 아내와 산책하느라 감사 인사가 늦었습니다.
    호스팅사에는 내일 문의하고 다시 연구해봐야겠습니다. 좋은 밤 되십시오..^^
  • ? profile
    네, 일단 test.php에서 이상현상이 있는 것을 인정하고 해결해 주었으니
    같은 증상이 있는 페이지가 XE라고 해도 고객에게 책임을 떠넘기지는 못하겠지요. ㅎㅎ