로그인 권한 주기전 로그인 오류에 대한 문제 채택완료

안녕하세요 몇가지 궁금하한 점이 있어서 고수님들게 문의드립니다

로그인제한을 걸었을때 레벨 승인이 안되서 접속할 수 없다는 알림 메시지가 뜬후에

현재 페이지에서 '회원정보찾기' '회원가입'을 눌럿을때

보시는바와같이 이미 로그인중입니다 이렇게 뜹니다

3068457187_1729155541.8062.jpg

아마 레벨승인이 안되서 거부가 된상태에서도 로그인으로 인식해서 그런거같은데

왠만큼 검색해서 있는코드를 다 써본상태인데도 안되네요 어떤 코드를 어떻게 수정해야할까요?

Copy
// 로그인 여부 확인
if (!$is_member) {
    // 로그인이 되어 있지 않으면 로그인 페이지로 이동
    goto_url(G5_BBS_URL.'/login.php');
    exit;
}

// 로그인 여부 확인 및 예외 페이지 설정
$allowed_pages = array('/password_lost.php', '/register.php');
$current_page = $_SERVER['SCRIPT_NAME'];

// 회원 레벨이 2 미만일 경우 접근 제한, 하지만 예외 페이지에서는 제한하지 않음
if ($member['mb_level'] < 2 && !in_array($current_page, $allowed_pages)) {
    echo "<script>
        alert('레벨2부터 접속하실 수 있습니다');
        history.back(); // 이전 페이지로 돌아가거나 다른 동작을 할 수 있습니다.
    </script>";
    exit; // 이후의 코드를 실행하지 않도록 종료
}

답변 2개

채택된 답변
+20 포인트
Copy
<?php

// 로그인 여부 확인

if (!$is_member) {

    // 로그인이 되어 있지 않으면 로그인 페이지로 이동

    goto_url(G5_BBS_URL.'/login.php');

    exit;

}

// 로그인 여부 확인 및 예외 페이지 설정

$allowed_pages = array('/password_lost.php', '/register.php');

$current_page = $_SERVER['SCRIPT_NAME'];

// 회원 레벨이 2 미만일 경우 접근 제한, 하지만 예외 페이지에서는 제한하지 않음

if ($member['mb_level'] < 2 && !in_array($current_page, $allowed_pages)) {

    if(function_exists('social_provider_logout')){

        social_provider_logout();

    }

    session_unset();

    session_destroy();

    set_cookie('ck_mb_id', '', 0);

    set_cookie('ck_auto', '', 0);

    echo "<script>

        alert('레벨2부터 접속하실 수 있습니다');

        history.back(); // 이전 페이지로 돌아가거나 다른 동작을 할 수 있습니다.

    </script>";

    exit; // 이후의 코드를 실행하지 않도록 종료

}
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

정확했습니다! 감사합니다!

댓글을 작성하려면 로그인이 필요합니다.

로그아웃하시고 해보시면 되지 않을까요?

아니면 if(!$is_admin) {

} 조건문을 추가해보세요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고