테스트 사이트 - 개발 중인 베타 버전입니다

세션에 의한 자동 로그아웃 알림창 채택완료

LovelyCaT 3년 전 조회 4,170

세션에 의한 자동 로그아웃 알림창은 common.php 쪽에 넣어야하는걸까요..?

common.php 쪽에서

세션없을때

if ($_SESSION['ss_mb_id']) {

}else{ 

 

}

else 부분일거같긴한데.. 자동로그인이 아니라 일반이면 원래 세션에 있던 회원인지 어떻게 구분해야할까요..

개인정보처리방침 뭐 작성하는거때문에 하고있는데 구 그누보드는 몇개 안되어있는게 있어 일일히 수정하려다보니 막혔네요 ㅜㅜ

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

답변 1개

채택된 답변
+20 포인트
e
3년 전

세션이 없으면 로그아웃이 처리되는 겁니다.

그냥 세션이 없으니 로그인하세요.. 이렇게 알람이 뜨도록 되어 있는겁니다.

즉, 원래 세션이 있었는지 여부는 알수 없습니다.

원래 세션이 있었던걸 알려면, 그 세션을 따로 저장해서 비교해야 합니다.

별로 권하고 싶지은 않은 방법이구요..

 

자동로그인은 쿠키로 저장하구요..

아래 소스 부분이 해당됩니다.

쿠키가 있으면 세션 로그인 처리를 해주는 겁니다.

</p>

<p>    // 자동로그인 ---------------------------------------</p>

<p>    // 회원아이디가 쿠키에 저장되어 있다면 (3.27)</p>

<p>    if ($tmp_mb_id = get_cookie('ck_mb_id')) {</p>

<p> </p>

<p>        $tmp_mb_id = substr(preg_replace("/[^a-zA-Z0-9_]*/", "", $tmp_mb_id), 0, 20);</p>

<p>        // 최고관리자는 자동로그인 금지</p>

<p>        if (strtolower($tmp_mb_id) !== strtolower($config['cf_admin'])) {</p>

<p>            $sql = " select mb_password, mb_intercept_date, mb_leave_date, mb_email_certify from {$g5['member_table']} where mb_id = '{$tmp_mb_id}' ";</p>

<p>            $row = sql_fetch($sql);</p>

<p>            if($row['mb_password']){</p>

<p>                $key = md5($_SERVER['SERVER_ADDR'] . $_SERVER['SERVER_SOFTWARE'] . $_SERVER['HTTP_USER_AGENT'] . $row['mb_password']);</p>

<p>                // 쿠키에 저장된 키와 같다면</p>

<p>                $tmp_key = get_cookie('ck_auto');</p>

<p>                if ($tmp_key === $key && $tmp_key) {</p>

<p>                    // 차단, 탈퇴가 아니고 메일인증이 사용이면서 인증을 받았다면</p>

<p>                    if ($row['mb_intercept_date'] == '' &&</p>

<p>                        $row['mb_leave_date'] == '' &&</p>

<p>                        (!$config['cf_use_email_certify'] || preg_match('/[1-9]/', $row['mb_email_certify'])) ) {</p>

<p>                        // 세션에 회원아이디를 저장하여 로그인으로 간주</p>

<p>                        set_session('ss_mb_id', $tmp_mb_id);</p>

<p> </p>

<p>                        // 페이지를 재실행</p>

<p>                        echo "<script type='text/javascript'> window.location.reload(); </script>";</p>

<p>                        exit;</p>

<p>                    }</p>

<p>                }</p>

<p>            }</p>

<p>            // $row 배열변수 해제</p>

<p>            unset($row);</p>

<p>        }</p>

<p>    }</p>

<p>    // 자동로그인 end ---------------------------------------</p>

<p>

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

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

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

로그인