로그인 페이지를 제외한 모든 페이지를 회원만 사용가능하게 설정 > 그누4 팁자료실

그누4 팁자료실

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

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

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

본문

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

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

더이상 회원가입을 받지 않고 기존 회원으로만 유지할 때, 유효한 것 같습니다.

왜냐 하면 새로운 방문자가 가입을 하려고 해도,
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폴더에서 제거하면 엑박이 안뜨고 잘됩니다. 왜그럴까요? ㅠㅠ
와우 감사합니다...
이방법을 사용하니 맨첨에 로그인을 해야 들어 올수 있겟네요.
제가 정말 원하던 기능이었습니다.
한번더 머리숙여 감사합니다.
© SIRSOFT
현재 페이지 제일 처음으로