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

라이믹스의 경우 geoip를 굳이 이용하지 않아도 자체 함수로 korean ip인지 아닌지 체크하는 기능이 내장되어 있더라구요

 

그래서 간단히 애드온을 통해서 해외 아이피의 경우 사이트 접속을 차단하고 에러 메시지를 내보내는 애드온을 작성해보려고 하는데요

 

if(if (!Rhymix\Framework\Korea::isKoreanIP(RX_CLIENT_IP))   {)

{

에러메시지 출력

}

을 해봐도 조건문 자체가 동작을 하지 않는것 같네요...ㅠ

 

(+) 모듈에서의 경우 에러메시지를 출력할 때 return new BaseObject(-1,"에러메시지") 로 하면 에러메시지가 디자인에 맞게 출력되던데

애드온에서의 경우 어떻게 에러메시지를 출력해야할까요?

  • profile
    if(if (!Rhymix\Framework\Korea::isKoreanIP(RX_CLIENT_IP)) {)

    {

    에러메시지 출력

    }
    if문안에 if를 또 사용할 수 없습니다.

    if (!Rhymix\Framework\Korea::isKoreanIP(RX_CLIENT_IP))
    {
    에러메세지.
    }

    참고로 애드온에서는 애드온을 동작하지 않는 경우에만 리턴하도록 설계되어있기 때문에 특정액션을 지정해야합니다.

    사이트 접속을 차단하는 위치.

    if ($called_position == 'after_module_proc' && !Rhymix\Framework\Korea::isKoreanIP(RX_CLIENT_IP))
    {
    return $this->stop('에러메세지');
    }

    형태로 구현해보세요.

    테스트는 안해봤습니다.
  • profile ?
    앗 if문 중복은 xetown에 코드를 올릴때 오타난거군요 ;;
    람보님 댓글대로 다시 시도해 보았는데도 아얘 if 문이 작동을 하지 않습니다.
    애드온에서는 해당 함수(라이믹스 프레임워크)를 사용하지 못 하는건가 싶네요 ㅠ