로그인 페이지를 제외한 모든 페이지를 회원만 사용가능하게 설정

· 2009-01-17 (토) 11:01:32 · 6299 · 18

말 그대로
로그인 하는 페이지를 제외한 모든 페이지를 회원만 사용가능하게 하는 설정입니다.

간단하게 처리하였습니다.
그누보드 설치 디렉토리 내에
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개

흐미 추천을 했는데 반응이 없어서 댓글에 추천 누르니 추천 이미했다네요....
네 감사합니다.
유창화님의 소스는 언제나 유용하게 잘 쓰고 있습니다. 감사합니다 !
네 감사합니다.
2009-01-18 (일) 14:32:00
가끔씩 올려주시는 팁은
제게 많은 도움이 되고있습니다.

감사합니다.^^
감사합니다.
2009-01-19 (월) 18:06:04
감사합니다...
네 감사합니다
2009-01-22 (목) 23:09:56
유용한 팁 고맙습니다.
유창화 님의 팁은 항상 굉장히 많은 공부가 됩니다. 감사합니다^^
2009-02-10 (화) 12:51:18
좋은정보 감사합니다^^
2009-04-01 (수) 12:31:05
더이상 회원가입을 받지 않고 기존 회원으로만 유지할 때, 유효한 것 같습니다.

왜냐 하면 새로운 방문자가 가입을 하려고 해도,
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폴더에서 제거하면 엑박이 안뜨고 잘됩니다. 왜그럴까요? ㅠㅠ
와우 감사합니다...
이방법을 사용하니 맨첨에 로그인을 해야 들어 올수 있겟네요.
제가 정말 원하던 기능이었습니다.
한번더 머리숙여 감사합니다.
2013-02-12 (화) 09:41:31
정말 좋은 기능이네요. 계속 삽질하며 찾던 중이였는데.. 감사합니다.
댓글을 작성하시려면 로그인이 필요합니다.

그누4 팁자료실

3,309건

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요. 나누면 즐거움이 커집니다.

+
제목 글쓴이 날짜 조회
09-01-19 조회 4,522
09-01-19 조회 2,926
09-01-18 조회 4,795
09-01-17 조회 6,300
09-01-17 조회 6,262
09-01-16 조회 1.2만
09-01-14 조회 7,840
09-01-13 조회 4,834
09-01-12 조회 6,323
09-01-11 조회 2,918
09-01-11 조회 2,176
09-01-10 조회 4,451
09-01-09 조회 2,851
09-01-09 조회 3,564
09-01-08 조회 2,936
09-01-07 조회 4,753
09-01-07 조회 2,636
09-01-07 조회 2,724
09-01-07 조회 2,857
09-01-07 조회 3,781