홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송
운.영.자.1대1.상담
온라이브 음악방송
음악방송 앱 다운로드
보안∵서버∵쿠키
윈도우∵프레임
이미지∵배경
시간∵달력∵계산
상태바∵타이틀바
음악∵영상
폼∵전송∵테이블
키보드∵마우스
효과∵링크∵메뉴
Script∵php
기타
PHP 강좌
윈도우관련팁
웹관련팁
홈페이지제작팁
기본강좌
레지스트리
윈도우서버
리눅스서버
Android
세션을 이용한 동시 로그인 방지
9년 전
$ssdir = $DOCUMENT_ROOT."/_session" ;
$idletime = 10800 ;    // 지연시간 3시간

function CreateSession($id) {
    global $ssdir ;
    global $idletime ;
    global $_SERVER ;


    // unique 식별자 발생
    $ssid = "" ;
    for( $i = 1 ; $i <= 8 ; $i++ ) {
        mt_srand((double)microtime()*1000000) ;
        do {
            $randval = mt_rand(48,122) ;
        } while ( ( 58 <= $randval && 64 >= $randval ) || ( 91 <= $randval && 96 >= $randval ) ) ;
        $ssid .= chr($randval) ;
    }

    $ipaddr = $_SERVER["REMOTE_ADDR"] ;
    $sskey = $id."_".$ssid."_".$ipaddr ;    // 세션생성완료
    for( $i = 0 ; $i < strlen($id) ; $i++ ) $ssdir .= "/".$id[$i] ;
    $ssfile = $ssdir ."/".$sskey ;        // 세션파일명

    // 디렉토리생성
    $tmpdir = $ssdir ;
    for( $i = 0 ; $i < strlen($id) ; $i++ ) {
        $tmpdir .= "/".$id[$i] ;
        if( !is_dir($tmpdir) )    mkdir($tmpdir,0775) ;
        clearstatcache() ;
    }


    // 동일 ID 의 세션화일이 존재하는지 확인

    $hd = opendir($tmpdir) ;
    while( $filename = readdir($hd) ) {
        clearstatcache() ;
        if( filetype( $tmpdir."/".$filename ) == "dir" ) continue ;    // 디렉토리면 무시한다.
        clearstatcache() ;
        if( preg_match( "/^$id_/", $filename ) )    {            // 동일 ID 의 세션화일이 존재한다면
            $mtime = filemtime($tmpdir."/".$filename) ;        // 세션화일의 modify 시간을 구한다.
            $ctime = time() ;// 현재시간을 구한다.
            if( ($ctime - $mtime) < $idletime ) {                    // idletime 을 초과하는지 확인
                closedir($hd) ;
                $prev = preg_split("/_/", $filename) ;            // 이전 사용자의 ssid 를 구한다.

                if($_member_code){    
                    ## 이미 다른 사용자가 접속중이거나 로그아웃이 제대로 되지 않았음을 알려주는 경고메시지
                }
            }
            else
                unlink($tmpdir."/".$filename) ;            // idletime 을 넘긴 경우 이전세션화일 삭제
            break ;
        }
    }
    @closedir($hd) ;

    touch($ssfile) ;            // 세션화일생성
                        // print "세션키화일명 : $ssfile, $tmpdir" ;
    setcookie("sskey", $sskey, 0, "/" ) ;
}


function SessionCheck() {
    global $ssdir ;
    global $idletime ;
    global $_COOKIE ;

    $sskey = $_COOKIE[sskey] ;
    // 세션이 존재하지 않는 경우 경고메세지
    if( $sskey == NULL ){
        ## 경고 메시지 후 로그인 페이지로 이동
    }

    $tmp = preg_split("/_/", $sskey) ;
    $id = $tmp[0] ;                // 사용자의 id 를 구한다.
    for( $i = 0 ; $i < strlen($id) ; $i++ ) $ssdir .= "/".$id[$i] ;
    $ssfile = $ssdir ."/".$sskey ;        // 세션파일명
    clearstatcache() ;
    if( file_exists($ssfile) ) {        // 세션파일이 존재하는 경우
        $mtime = filemtime($ssfile) ;        // 세션화일의 modify 시간을 구한다.
        $ctime = time() ;            // 현재시간을 구한다.
        if( ($ctime - $mtime) < $idletime )
            touch($ssfile) ;        // idletime 을 초과하지 않는 경우 file 수정시간 갱신
        else {
            ## 3시간 이상 사용없으므로 경고 메시지및 로그인 페이지로 이동
        }
    }else{
        ## 세션파일이 존재하지 않는 경우 로그아웃 페이지로 이동
    }
}
추천추천 : 506 추천 목록
번호 제목
3,025
 PHP 파일 존재 여부 파악하기(로컬 파일 존재 및 원격지 파일 존재)
3,024
 [CSS] 박스 세로 가운데 중앙 정렬 6가지
3,023
 CSS Layout 수평 & 수직 정렬
3,022
 여러 도메인들 간 쿠키 공유하기
3,021
 태그 사이에 있는 텍스트를 추출
3,020
 [JQuery] textbox focus on off일때 숫자 콤마 보여주기
3,019
 쿠키 생성,가져오기,삭제
3,018
 사용자 함수 모음
3,017
 마우스,키보드 제한 ( 오른쪽클릭,드래그,영역선택등..)
3,016
 [HTML5] <video> - DOM으로 제어하기
3,015
 HTML5 video 태그에서 영상 좌우반전
3,014
 PHP - 특정 태그 및 문자열 추출, 제거
3,013
 [PHP] define과 defined의 차이
3,012
 우클릭 완벽차단 스크립트
3,011
 iframe 높이 100% 맞추기
3,010
 curl 함수를 이용한 HTTP REFERER 변경
3,009
 윈도우10 시스템 파일 및 Dism 검사
3,008
 텍스트 줄바꿈, 글자자르기 CSS
3,007
 jQuery Mobile에서 유용한 코드 10가지.
3,006
 [PHP] dirname()함수와 $_SERVER 관련 상수들
3,005
 [PHP] 파일 크기, 사이즈 불러오는 함수, filesize()
3,004
 [jQuery] jQuery Quick API
3,003
 [ transition ] 링크 hover 색상 변화 속도 조절
3,002
 PHP 5.3.0 에서 사라진 함수들 대체
3,001
 어떤 파일들이 include 나 require 되었는지 확인하는 함수(get_included_files)
목록
환상의뽕짝카페
트로트티비
뽕짝아가씨
트롯맘
종합성인가요방
카바레 음악
트롯디스코팡팡
관광 메들리
트롯카페
가요감상실
추억의옛노래
스페셜가요광장
BillBoard Free
추천가요모음
경음악.전자올겐
스페셜음악여행
WOLRD POPs
K-POP\BillBoard
POP TOP BEST

최신인기가요특집
추천가요\인기
F뮤직 인기\발라드
F뮤직 애창\트로트
트로트성인가요
인기가요
프리미엄 POP
경음악\기타
프리미엄 최신가요
프리미엄 성인가요
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.