그누보드 공부중인데 이해가 안되서요. 도와주세요~ 채택완료
그누보드 처음 설치 후 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된 파일의 직접적인 주소 접근을 막기 위한 구문이며 해당 구문이 있어야 외부에서 직접 해당페이지에 접근했을 때 실행이 되지 않습니다
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
개별 페이지 접근 불가 구문을 없애고 ~/theme/basic/index.php로 접속했는데
<----
include_once(G5_THEME_PATH.'/head.php'); 행에서 에러가 발생하여 그 아래는 더 이상 실행 안되는 것입니다
에러 메세지를 출력되게 상단에 코드를 넣어서 해보면 이유를 알 수 있습니다
error_reporting(E_ALL & ~E_NOTICE);
ini_set("display_errors", 1);
답변에 대한 댓글 1개
공부가 부족한듯 하네요.
알려주신 코드를 넣었는데 똑같이 하얀배경만 보이네요...
다시 한번 그누보드 자료 찾아서 공부하고 질문 드릴께요.
댓글을 작성하려면 로그인이 필요합니다.
'개별 페이지 접근 불가' 의 의미는 해당 물리적 경로로 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 를 접속하면 페이지에 아무것도 나오지 않게 됩니다.
이러한 처리의 목적은 '보안' 성격입니다.
답변에 대한 댓글 1개
똑같이 페이지에 아무도 안나와서... 저 구문을 없애면 나와야 하는게 맞는거죠???
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
직접적으로 ~/theme/basic/index.php 라고 쳤을때 안들어가게 하는거였군요.
답변 듣고 저 문구를 없앤다음 ~/theme/basic/index.php로 들어갔는데
똑같이 표시가 안되서요.... 저 문구가 없으면 화면이 나와야 하는게 맞는거죠???