그누보드 공부중인데 이해가 안되서요. 도와주세요~

그누보드 공부중인데 이해가 안되서요. 도와주세요~

QA

그누보드 공부중인데 이해가 안되서요. 도와주세요~

본문

그누보드 처음 설치 후 Theme -> basic -> index.php 들어가면

<?php
define('_INDEX_', true);
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

if (G5_IS_MOBILE) {
    include_once(G5_THEME_MOBILE_PATH.'/index.php');
    return;
}

include_once(G5_THEME_PATH.'/head.php');
?>

 

이렇게 작성 되어 있는데

define('_INDEX_', true); 
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

 

여기서 if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

아래 설명대로라면 이 문구를 삭제 하면 개별 페이지에 접근시 종료가 되야 하는것 아닌가요???

그런데 종료가 안되고 정상적으로 화면이 나와서요...

개별 페이지 접근 불가

_GNUBOARD_ 상수는 config.php:11에 정의되어 있으며, 이 상수가 정의되어 있지 않다면 즉, 개별 페이지에 접근하면 바로 종료된다.

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

출처 : https://webdir.tistory.com/444

 

개별페이지 접근 못하게 하는게 위 방법으로 하는게 아니라면

그누보드에서는 개별페이지 접근을 어떻게 막는건가요???

이 질문에 댓글 쓰기 :

답변 3

개별페이지 접근 불가라는것은
해당 php파일 경로를 직접 입력했을때 해당 php파일이 실행이 되지 않게 하는 구문입니다.

테마 적용후 index.php 접속하면 접속이 되지만

 

/theme/baisc/index.php로 직접 주소를 쳐서 들어갔을땐 안들어가진다는 뜻입니다.

 

질문이 이해하기 어려워서 의도하신 질문이 무엇인지 잘 모르겠지만
해당 구문을 제거한다고 테마 적용 후 접속시 바뀌는것은 없습니다.

 

include된 파일의 직접적인 주소 접근을 막기 위한 구문이며 해당 구문이 있어야 외부에서 직접 해당페이지에 접근했을 때 실행이 되지 않습니다

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
직접적으로 ~/theme/basic/index.php 라고 쳤을때 안들어가게 하는거였군요.
답변 듣고 저 문구를 없앤다음 ~/theme/basic/index.php로 들어갔는데
똑같이 표시가 안되서요.... 저 문구가 없으면 화면이 나와야 하는게 맞는거죠???

'개별 페이지 접근 불가' 의 의미는 해당 물리적 경로로 URL 접근시 페이지가 종료된다는 의미입니다.

 

주소창에 ~/theme/basic/index.php 로 접속하면 

if (!defined('_GNUBOARD_')) exit;

로 인해 페이지에 아무것도 나오지 않게 됩니다.

 

~/index.php 로 접속하면.. 여러 단계/과정을 거쳐 (테마 사용시에는) /theme/basic/index.php 파일의 내용이 처리되는 것입니다.

 

비슷한 케이스로 /skin/board/basic/list.skin.php 도,

주소창에서 ~/skin/board/basic/list.skin.php 를 접속하면 페이지에 아무것도 나오지 않게 됩니다.

 

이러한 처리의 목적은 '보안' 성격입니다.

개별 페이지 접근 불가 구문을 없애고 ~/theme/basic/index.php로 접속했는데

<----

include_once(G5_THEME_PATH.'/head.php'); 행에서 에러가 발생하여 그 아래는 더 이상 실행 안되는 것입니다

에러 메세지를 출력되게 상단에 코드를 넣어서 해보면 이유를 알 수 있습니다

 

error_reporting(E_ALL & ~E_NOTICE);
ini_set("display_errors", 1);

 

답변을 작성하시기 전에 로그인 해주세요.
전체 2,346
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT