그누보드 특정 페이지에서 코드 실행하는 방법

Lpla

·

2021. 1. 29. 21:30

반응형

 

그누보드는 기본적으로 메인 페이지에서 팝업이 노출되도록 하는 구문을 사용하고 있다.

<?php
  define('_INDEX_', true);
  
  
  if(defined('_INDEX_')) {
    include G5_BBS_PATH . '/newwin.inc.php'; // 팝업레이어
  }
?>

 

먼저 상단에 <?php define('_INDEX_', true); ?>를 실행하여 _INDEX_ 라는 변수에 true를 변환한다.

그리고 아래 조건문에서 _INDEX_가 true 일 때, newwin.inc.php 즉 팝업레이어를 실행하고 있다.

즉 팝업레이어를 실행하고 싶지 않다면 <?php define('_INDEX_', false); ?> 혹은 이 코드를 삭제하면 된다.

 

이것을 이용하면 임의의 변수를 만들고 원하는 상황에 따라 코드를 실행하는 것이 가능하다.

<?php
  define('SUB_PAGE', true);
  
  
  if(defined('SUB_PAGE')) {
    include G5_PATH . '/sub.php';
?>
  <script>alert('자바스크립트 실행');</script>
<?php
  }
?>

 

SUB_PAGE 라는 변수를 정의하고 원하는 php 파일을 불러오거나 자바스크립트를 실행할 수 있다.

 

하지만 이 방법도 필요한 페이지마다 위 코드를 일일이 추가 해야 하는 작업이 필요하다.

코드 유지보수 측면에서는 훨씬 편리하지만 처음에 귀찮은 작업인 것은 분명하다.

 

만약 HTML 을 원하는 위치에 추가하고자 하는 상황이 아니라면 head.php 나 tail.php 에 아래 코드를 추가하면 url 에 따라서 코드가 실행되도록 할 수 있다.

<?php if (dirname($PHP_SELF) == '/sub') { ?>
  <script>alert('여기는 서브페이지입니다.');</script>
  <?php
  }
?>

 

이 코드는 example.com 에서는 실행되지 않지만 example.com/sub/index.php 에서는 실행된다.

sub 라는 경로에 있는 파일은 실행되는 것이다.

 

<?php if (strpos(basename($PHP_SELF),'01.php') == true) { ?>
  <script>alert('여기는 서브페이지입니다1');</script>
  <?php
  }
?>

 

이 코드는 01.php 를 포함하고 있는 페이지에서 실행된다.

example.com/01_02.php, example.com/sub.php 에서는 실행 되지 않고 example.com/sub_01.php 에서는 실행된다.

반응형