i

중복로그인 방지

· 2010-06-12 (토) 19:23:40 · 4063 · 3
중복로그인 방지 방법좀 알려주세요 ㅠㅠ
|

댓글 3개

2010-06-27 (일) 10:50:46
중복로그인이 있는 경우 이미 로그인 하고 있다는 것을 알려만 줍니다.
회원의 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에 추가 합니다.



------------------- 아빠 불당님글 ㅋㅋ
중복로그인 방지
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

66,531건

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

+
제목 글쓴이 날짜 조회
10-06-14 조회 5,124
10-06-14 조회 2,221
10-06-14 조회 1,641
10-06-14 조회 1,549
10-06-14 조회 1,622
10-06-13 조회 4,514
10-06-13 조회 3,225
10-06-13 조회 1,508
10-06-13 조회 1,839
10-06-13 조회 1,907
10-06-13 조회 2,306
10-06-12 조회 1,666
10-06-12 조회 1,518
10-06-12 조회 1,821
10-06-12 조회 4,064
10-06-12 조회 1,671
10-06-12 조회 1,932
10-06-12 조회 1,556
10-06-12 조회 1,688
10-06-11 조회 3,241