로그인 페이지를 제외한 모든 페이지를 회원만 사용가능하게 설정
말 그대로
로그인 하는 페이지를 제외한 모든 페이지를 회원만 사용가능하게 하는 설정입니다.
간단하게 처리하였습니다.
그누보드 설치 디렉토리 내에
extend 디렉토리에
login_check.php 를 만들고
<?
if (!defined('_GNUBOARD_')) exit;
//로그인 페이지를 제외한 전 페이지 로그인해야만 들어올수 있게 하기
if (!preg_match("`/" . $g4['bbs'] . "/login.php$`", $_SERVER['PHP_SELF']) && !preg_match("`/" . $g4['bbs'] . "/login_check.php$`", $_SERVER['PHP_SELF']) && ($is_member == false || empty($member['mb_id'])))
goto_url($g4['bbs_path'] . '/login.php');
?>
요렇게만 넣어주면 됩니다.
원리는 extend 디렉토리 내의 모든 파일은 common.php 제일 하단에서 항상 인클루드 되기때문에 쉽게 common.php를 인클루드 하는 모든 페이지에서 적용됩니다.
유용하면 추천 한방 주세요.
ps> 잘못 적은 부분이 있어서 금방 수정했습니다 (2009-01-17 11:08)
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 18개
제게 많은 도움이 되고있습니다.
감사합니다.^^
왜냐 하면 새로운 방문자가 가입을 하려고 해도,
extend의 속성에 따라 register 페이지로 이동하지 못하고
계속적으로 로그인페이지만 뜹니다.
이를 해결해 주시면 좋겠네요.
if (!defined('_GNUBOARD_')) exit;
//로그인 안해도 되는 페이지 세팅
$temp_array = Array();
$temp_array[] = "login.php";
$temp_array[] = "login_check.php";
$temp_array[] = "register.php";
$temp_array[] = "register_form.php";
$temp_array[] = "register_form_update.php";
$temp_array[] = "password_forget.php";
$temp_array[] = "password_forget2.php";
$temp_array[] = "password_forget3.php";
$pattern = '';
foreach($temp_array as $v){
$pattern .= str_replace('.', '\.', $v) . '|';
}
$pattern = preg_replace("`\|$`", '', $pattern);
//로그인 페이지, 회원가입, 아이디비번 찾기를 제외한 전 페이지 로그인해야만 들어올수 있게 하기
if (!preg_match("`(" . $pattern . ")$`", basename($_SERVER['PHP_SELF'])) && ($is_member == false || empty($member['mb_id'])))
goto_url($g4['bbs_path'] . '/login.php');
?>
요렇게 하면 되지 않을까요?
$temp_array[] = "kcaptcha.php";
$temp_array[] = "kcaptcha_config.php";
$temp_array[] = "kcaptcha_image.php";
$temp_array[] = "kcaptcha_session.php";
$temp_array[] = "ajax_mb_id_check.php";
$temp_array[] = "ajax_mb_nick_check.php";
$temp_array[] = "ajax_mb_email_check.php";
$temp_array[] = "ajax_get_token.php";
위에위에 유창화님이 09-4/27일에 올려주신대로 하니깐 로그인 기능 아주잘 작동합니다.
근데 회원가입과 패스워드찾기화면에서 자동등록방지 엑박이 뜹니다. 참고로 UTF-8버전 쓰고 있고,
이 파일을 extend폴더에서 제거하면 엑박이 안뜨고 잘됩니다. 왜그럴까요? ㅠㅠ
이방법을 사용하니 맨첨에 로그인을 해야 들어 올수 있겟네요.
제가 정말 원하던 기능이었습니다.
한번더 머리숙여 감사합니다.