Warning: Undefined array key "mobile_dir" in /home/kagla/new-sir/old/common.php on line 315
IP관계없이 ID 한개만 접속 (아이디 중복 방지)

IP관계없이 ID 한개만 접속 (아이디 중복 방지)

IP관계없이 ID 한개만 접속 (아이디 중복 방지)

QA

IP관계없이 ID 한개만 접속 (아이디 중복 방지)

답변 4

본문

검색해봐도 잘 모르겠어서 질문드려봅니다.

 

IP 가 다르건 컴터가 다르건 상관없이

무조건 한개의 ID만  접속하게 하고 싶습니다.

 

검색으론 로그인시 디비와 세션에 ID+랜덤숫자 를 기록하고 비교하라는게

제가 하고싶은 의도와 맞는거 같은데 어떻게 구현해야 할지 막막하네요.

 

이 질문에 댓글 쓰기 :

답변 4


    $session_dir =    G5_SESSION_PATH;
    $d = dir($session_dir);
    while (false != ($entry = $d->read())) {
        $temp = file($session_dir . '/' . $entry);
        if (preg_match("`ss_mb_id\|[^;]*\"" . $mb['mb_id'] . "\";`", $temp[0])) {
        $d = dir($session_dir);
        while (false !== ($entry = $d->read())) {
          if (substr($entry, 0, 1) != '.' && $entry != 'index.php'){
            $temp = file($session_dir . '/' . $entry);
            if (preg_match("`ss_mb_id\|[^;]*\"" . $mb['mb_id'] . "\";`", $temp[0])) {
              unlink($session_dir . '/' . $entry);
            }
          }
        }
        }
    }

답변 감사합니다. 알려주신 코드가  https://sir.kr/g4_tiptech/34382  이곳 팁과 비슷하네요.

적용해서 써봤는데요.  작동이 잘 됩니다.
욕심을 내자면 질문의 본문 내용처럼  A로그인중 B가 로그인 할경우
A는 로그아웃 되고 B는 로그인이 되었으면 하는데

위 코드로는 둘다 로그아웃 되버리네요.

두 번째 id가 로그인 시

어떻게 하실 생각( 정책) 인가요?

여러 방법이 있겠지만 제일 간단한건

로그인 시 기존 세션을 날려버리는 게 제일 심플하고 편합니다.

 

A 사용자가 AAAA 아이디로 로그인 후
B 사용자가 다른 컴이든 지역이든 AAAA 아이디로 재 로그인하면

A 사용자의 세션이 삭제되고 B 사용자의 세션으로 기록되기 때문에

A 사용자가 페이지 이동시 로그아웃 처리가 됩니다.

즉, 마지막 로그인한 사용자만 유효한 것이죠.

이런 방식으로 처리하시는게 좋을듯합니다.

 

말씀하신 방법이 간단하지만
두 곳에서 경쟁적으로 로그인 시도가 계속되면 문제가 될 수 있지 않을까요?
로그인 시 최소 10분? 정도는
 다른 곳에서 로그인을 차단해 주는 방법도 좋을 듯합니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 129,406
© SIRSOFT
현재 페이지 제일 처음으로