php 업데이트 때문에 에러나는게 있는데 하나만 봐주시겠어요.
본문
안녕하세요.
제가 사용하는 호스팅이 지들 마음대로 php 상위버전으로 업데이트를 한건지,
설정을 변경한건지...
아무 문제없던 홈페이지가 php 에러코드를 뽑아내고,
제대로 작동하던 기능이 작동 안하고 있는 상황입니다.
계정안에 홈페이지가 십여개 들어 있는데 이것들이 일거리를 만드네요.
유료호스팅은 아무런 통보도 없이 이런식으로 운영하다니...
일단 무슨 일인지 문의는 해뒀는데, 밤이라 그런지 답이 없네요.
간단한건 제가 수정하고 있는 중인데,
한가지는 어디를 수정해야 할지 몰라서 문의 드립니다.
기존에
제 홈페이지 기능중 하나는 스크립트를 불러오지 않고,
스크립트 내용을 아래 처럼 감싼 후 php로 불러오게 한 것이 있습니다.
미약하게나마 소스를 안보여줄려고요.
<?php if(!preg_match("/".$_SERVER['HTTP_HOST']."/i",$_SERVER['HTTP_REFERER'])) exit;?>
스크립트 내용
//-->
정상적으로 잘 작동하고 있었는데,
이번에 문제 생기면서 전혀 작동 안하고 있습니다.
지금 호스팅에서도 스크립트 감싼거 빼버리고,
php가 아닌 스크립트로 불러오면 정상 작동은 하고 있는거 보니
아마도
<?php if(!preg_match("/".$_SERVER['HTTP_HOST']."/i",$_SERVER['HTTP_REFERER'])) exit;?>
이 부분만 수정해 주면 될거 같은데 어느 부분을 수정해야 할지 모르겠네요.
혹시 아시는분 계시면 답변 부탁드립니다.
감사합니다.
답변 3
echo $_SERVER['HTTP_HOST'];
echo '<br>';
echo $_SERVER['HTTP_REFERER'];
이렇게 해보시면 각각 어떤 데이타가 뿌려지시는 보여지실거에요 .
서술 하신 내용으로 봐서는 다른 사이트로 유입하여 접속하면 멈추라는 코드로 되어있는거 같은데
원하시는 효과가 어떤것인지 캐치를 못하겠습니다.
마지막에 exit; 대신에 ''; 이렇게 바꾸셔도 아무런 문제없다면 php 버전 하고 별개의 문제 같습니다.
문제 접근 포인트를 다시 잡으시는게 맞지않나 싶습니다.
phpinfo(); 이걸로 먼저 버전부터 확인해보시구요
if(!preg_match("/".$_SERVER['HTTP_HOST']."/i",$_SERVER['HTTP_REFERER'])) exit;
이 조건문이 어딧건지 모르겠어요 일단 주석처리 해보세요
PHP 7.4.15에서 Notice 뜨네요
PHP Notice: Undefined index: HTTP_REFERER
일단
<?php if(isset($_SERVER['HTTP_HOST']) && isset($_SERVER['HTTP_REFERER']) && !preg_match("/".$_SERVER['HTTP_HOST']."/i",$_SERVER['HTTP_REFERER'])) exit;?>
이렇게 변경해보시고 host referer 둘다 없을 때는 !true 니까 조절해주시고요
호스팅사에서 php error_reporting을 E_ALL 로 설정해놓은듯 싶군요
요새 이런 질문이 많이 보이던데
어느 호스팅사인지 궁금해요