그누보드 특정 페이지에서 코드 실행하는 방법
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 에서는 실행된다.