중복로그인 방지 > 그누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에 추가 합니다.



------------------- 아빠 불당님글 ㅋㅋ
© SIRSOFT
현재 페이지 제일 처음으로