반응형
그누보드로 사이트를 만들다 보면, 인트라넷 구축이나 기타 사유로 로그인만 가능한 사이트로 제작해야 하는 경우가 많습니다.
그럴 때 쓰면 아주 좋은 꿀팁입니다.
그누보드로 만든 사이트를 로그인 전용으로 바꾸기
1. /extend/ 폴더에 파일을 하나 생성합니다.
- only_login.extend.php
2. 생성한 파일 내용을 다음 내용으로 변경합니다.
<?php
if(!defined('_GNUBOARD_')) exit; // 개별 파일 접근 제한
/***
*깔끔하게 써도 되지만, 이해를 위해서 더렵게 씁니당. The Love(???)
*/
if($is_guest){
$_allow = [
'allowList'=>[
'/bbs/login.php',
'/bbs/login_check.php'
],
'path'=>$_SERVER['SCRIPT_NAME']
];
if(array_search($_allow['path'], $_allow['allowList'])===FALSE){
goto_url(G5_BBS_URL.'/login.php');
}
unset($_allow);
}
3. 로그인 전용으로 적용 된 사이트를 확인하시면 됩니다.
로그인 페이지로 가는 원리는 그누보드의 구조를 파악하면 쉽습니다.
is_guest | 비로그인 사용자 |
is_member | 회원, 관리자 |
is_admin | 사이트 관리자, 게시판 관리자 |
is_guest로 조건을 주어 비로그인 사용자에게만 조건을 적용하게 했고,
허용 리스트 배열 내에서 현재 로그인 페이지 파일이름을 검색한 뒤 나오지 않으면 바로 로그인 페이지로 이동하게 처리하는 구조입니다.
이후 $_allow 배열의 재사용을 막기 위해 unset으로 배열을 메모리 상에서 제거합니다.
goto_url의 경우엔 그누보드 내장 함수입니다.
여기서 알아두시면 좋은 점이, 그누보드가 웹 폴더 최상위에 있는걸 전재로 작성한 소스코드로, 하위폴더에 그누보드를 설치한 경우 허용리스트의 /bbs/ 부분에 하위폴더명을 추가해줘야합니다.
반응형
'Program > PHP' 카테고리의 다른 글
PHP 청크 업로드 / 파일 분할 업로드 예제 (2) | 2024.02.05 |
---|---|
PHP 기본개념 다지기 (0) | 2022.08.15 |
PHP에서 SQL 인젝션을 보다 효율적으로 방어하는 방법 (MySQL) (0) | 2020.08.02 |
[PHP] 네이버 클라우드 SENS용 카카오톡 알림톡 라이브러리 (0) | 2018.12.04 |
[외국어]How to make PHP file? (0) | 2016.10.02 |
한빛가람 필자가 게시한 대부분의 블로그 게시물은 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다. 게시물에 CCL이 적용되지 아니하다고 적혀있는 경우엔 본 라이선스 적용 대상이 아닙니다.
댓글