중복로그인 방지 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

중복로그인 방지 정보

중복로그인 방지

본문

중복로그인 방지 방법좀 알려주세요 ㅠㅠ

댓글 전체

중복로그인이 있는 경우 이미 로그인 하고 있다는 것을 알려만 줍니다.
회원의 kick-off 처리 등은 다른 이슈를 만들 수 있기 때문에 하지 않습니다.

중복로그인팁은 배추님의 db 세션관리에만 유효한 것 입니다.

먼저 db 세션관리를 위한 $g4[session_table]에 ip_addr 필드를 추가 합니다.

ALTER TABLE `g4_session` ADD `ip_addr` VARCHAR( 255 ) NOT NULL ;

다음에 /lib/mw.session.db.lib.php의 쓰기 함수에서 ip를 기록하게 수정 합니다.

function _mw_session_write($id, $data)
{
    global $connect_db, $g4;

    $id = mysql_real_escape_string($id);
    $ss_data = mysql_real_escape_string($data);
    $ss_datetime = $g4[time_ymdhis];

    // replace into = delete + insert 이므로 속도저하가 되므로 코드를 변경 합니다.
    //$sql = "replace into $g4[session_table] values ('$id', '$ss_datetime', '$ss_data')";
    //$qry = sql_query($sql);

    $sql = "update $g4[session_table] set ss_datetime = '$ss_datetime', ss_data = '$ss_data' where id = '$id'";
    $res = sql_query($sql);
    if (mysql_modified_rows() ==0) {
        $sql = " insert into $g4[session_table] set id='$id', ss_datetime = '$ss_datetime', ss_data = '$ss_data' ";
        sql_query($sql, false); // 처음 로그인을 할 때 중복키 오류가 나온답니다. ㅠ..ㅠ...
    }

    return $qry;
}

아래 코드를 /bbs/login_check.php의 login_check.skin.php를 읽는 곳 위에 추가 합니다.

// 불당팩 - 중복로그인 방지
if ($config['cf_double_login'] && $mb_id) {
    $sql = " SELECT * from $g4[session_table] where ss_data like '%:\"{$mb_id}\";%' and ip_addr != '$_SERVER[REMOTE_ADDR]' ";
    // ip를 고려하지 않는 경우 (새창을 띄우거나 불여우와 ie를 함께 사용하면 중복 로그인 오류가 나옵니다)
    //$sql = " SELECT * from $g4[session_table] where ss_data like '%:\"{$mb_id}\";%' ";
    $result = sql_query($sql);

    if (mysql_num_rows($result) > 0) {
        alert("다른 ip에서 이미 로그인되어 있습니다. 관리자에게 문의하시기 바랍니다.");
    }
}

$config['cf_double_login']의 값 설정하는 것은 /adm/config_form.php와
config_form_update.php에 추가 합니다.



------------------- 아빠 불당님글 ㅋㅋ
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT