로그인 페이지를 제외한 모든 페이지를 회원만 사용가능하게 설정 정보
로그인 페이지를 제외한 모든 페이지를 회원만 사용가능하게 설정
본문
말 그대로
로그인 하는 페이지를 제외한 모든 페이지를 회원만 사용가능하게 하는 설정입니다.
간단하게 처리하였습니다.
그누보드 설치 디렉토리 내에
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
18
댓글 18개
흐미 추천을 했는데 반응이 없어서 댓글에 추천 누르니 추천 이미했다네요....

네 감사합니다.

유창화님의 소스는 언제나 유용하게 잘 쓰고 있습니다. 감사합니다 !

네 감사합니다.
가끔씩 올려주시는 팁은
제게 많은 도움이 되고있습니다.
감사합니다.^^
제게 많은 도움이 되고있습니다.
감사합니다.^^

감사합니다.
감사합니다...

네 감사합니다
유용한 팁 고맙습니다.

유창화 님의 팁은 항상 굉장히 많은 공부가 됩니다. 감사합니다^^
좋은정보 감사합니다^^

더이상 회원가입을 받지 않고 기존 회원으로만 유지할 때, 유효한 것 같습니다.
왜냐 하면 새로운 방문자가 가입을 하려고 해도,
extend의 속성에 따라 register 페이지로 이동하지 못하고
계속적으로 로그인페이지만 뜹니다.
이를 해결해 주시면 좋겠네요.
왜냐 하면 새로운 방문자가 가입을 하려고 해도,
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');
?>
요렇게 하면 되지 않을까요?
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";
$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폴더에서 제거하면 엑박이 안뜨고 잘됩니다. 왜그럴까요? ㅠㅠ
위에위에 유창화님이 09-4/27일에 올려주신대로 하니깐 로그인 기능 아주잘 작동합니다.
근데 회원가입과 패스워드찾기화면에서 자동등록방지 엑박이 뜹니다. 참고로 UTF-8버전 쓰고 있고,
이 파일을 extend폴더에서 제거하면 엑박이 안뜨고 잘됩니다. 왜그럴까요? ㅠㅠ
와우 감사합니다...
이방법을 사용하니 맨첨에 로그인을 해야 들어 올수 있겟네요.
제가 정말 원하던 기능이었습니다.
한번더 머리숙여 감사합니다.
이방법을 사용하니 맨첨에 로그인을 해야 들어 올수 있겟네요.
제가 정말 원하던 기능이었습니다.
한번더 머리숙여 감사합니다.

정말 좋은 기능이네요. 계속 삽질하며 찾던 중이였는데.. 감사합니다.