웹모아
웹모아[손님] 검색   로그인    


 
토막소스
 


중복 로그인 방지법
  2008-03-26 13:16:58 댓글:(0)   조회:4349


====================인클루드용 체크파일 예제(파일명:loginchk.php)=======
<?
session_start();
// 세션 스타트!
include ("./inc/dbconn.php");
// 이것은 db 연결 부분을 인클루드 파일로 만든것임

/* 회원 인증 */
session_register("session_msg");
// 세션 변수 생성
if ($session_mid==""){
$session_msg = "로그인을 하셔야 합니다";

echo "<script language=javascript>";
echo "<!--n";
echo "alert("$session_msg");";
echo "// -->n";
echo "</script>n";
$session_msg = "";
echo "<script language=javascript>";
echo "self.location.href='rn-system.php';";
echo "</script>";
}
/* 회원 정보 조회 */
$sql = "select logkey from account where id = '$session_mid'";
// 로그인시에 세션에 저장했던 ID에 해당하는 계정에 logkey를 선택
$result = mysql_query($sql, $conn);
// 쿼리 전송과 함께 result 변수에 저장
$row = mysql_fetch_object($result);
// result를 페치 오브젝트로 만들어서 row 변수에 저장
// 여기까지 처리부분
///////////////////여기가 핵심//////////////////////////////////////////
if ($row->logkey != $session_logkey){
// 여기가 중요! DB의 logkey의 값과 세션에 저장되있는 logkey값이 다를 때!
$session_msg = "중복된 로그인입니다";
echo "<script language=javascript>";
echo "<!--n";
echo "alert("$session_msg");";
echo "// -->n";
echo "</script>n";
$session_msg = "";
echo "<script language=javascript>";
echo "self.location.href='rn-system.php';";
echo "</script>";
}

mysql_close($conn);
?>
=========================================================================

이것에 대한 자세한 설명은 뒤에 함께 ^^;
이 파일을 홈페이지에 사용하는 모든 파일에 맨 위에 인크루드 하시면 됩니다.
그럼 이 전제가 되셨다면 계속 아래를 읽어 봅시다 ^.^

우선 DB에 소위 '계정'에 해당하는 테이블의 끝에 필드 하나를 추가합니다.
필드명은 아무렇게나 하시고(전 logkey로 했음), 타입은 int, 길이는 10, 기본값은 0(NULL)으로합니다.
이 logkey를 이용해서 검사를 할 겁니다.

이제 다음 단계로 가보죠.
로그인 후에 각종 정보를 처리하는 파일을 여세요. (저 같은 경우는 acchk.php)
잘 보세요!

=======================로그인 처리 파일 예제(파일명:acchk.php)========================
!! 파일 내용이 너무 길어 핵심 부분만 보여 드립니다.
!! 로그인 처리 부분 뒤에 추가 하시면 되겠죠.
/* 중복 로그인 방지 */ <- 여기서 부터 시작입니다.
$time = time();
// 다른 분들은 뭐 세션 아이디나 ip등으로 하는데 저는 타임으로 했습니다 ^^;
// 뭐 고유의 값만 가지게 하면 되니까 꼭 time변수를 이용할 필요는 없습니다.
// 자! 이렇게 되면 $time에는 10자리의 고유의 타임값이 저장 됩니다.

$sql = "update account set logkey = '$time' where id = '$session_mid'";
// 위에서 "방금" 선언한 $session_mid로
// account 테이블의 logkey를 $time으로 업데이트 합니다!!
mysql_query($sql, $conn);
// 쿼리 전송

/* 로그키 리셋 */ <-여기서 부터는 세션 변수에 로그키를 저장하기 위함임!!
$sql = "select logkey from account where id = '$id' and pw = '$pw'";
$result = mysql_query($sql, $conn);
$row = mysql_fetch_object($result);

session_register("session_logkey");

$session_logkey = $row->logkey;
// 이 부분이 DB에 logkey를 세션의 logkey에 저장하는 부분입니다.
=======================================================================================

이렇게 하시면 이제 사용자가 다른 파일에 접근하면,
그 파일에 저 위에 있는 loginchk.php파일이 인크루드 되어 있을 시,
현재 세션의 키값과 DB에 저장 되어 있는 키값을 비교하고,
같으면 패스, 틀리면 중복되었다고 메시지를 띄우고 로그인 창으로 이동합니다.



 댓글 (0)


토막소스
페이지: 1 / 5   


   php에서 UTF-8, EUC-KR 인코딩 변경1
   PHP- 파일 다운로드시 속도 제한하기3
   이미지 사이즈 비율대로 축소1025
   PHP- 파일 다운로드시 속도 제한하기1786
     파일 다운로드 속도 제한1506
   ffmpeg 설치 후 php 업로드 간단 테스트2414
   새청없이 주소검색2085
   EUC-KR<=>UTF-8 상호변환 하기1989
   키를 이용한 암호화/복호화 함수입니다.1621
   간단한 암호화/복호화 함수1702
   PHP로 작동하는 RSS 읽는 함수1509
   [PHP] 자동 썸네일 이미지 만들기2122
   내용 검색시 검색어 내용 포함되어있는 부분 출력하기1481
   사이트 방문경로와 검색한 단어 알기1469
   이미지 실제경로를 않보여주고 이미지 출력하기(2) 4716
    Ajax로 구연한 실시간 서버시간 출력2342
   ajax refresh(2초에 한번 자동 페이지로딩4944
   refresh.php1489
   연합뉴스 샘플1630
   구글뉴스1459
   웹페이지의 문자열 가져오기 소스1711
   XML<-->Array 클래스(4) 1770
   str_replace() 한글치환 보강1879
   php로 텍스트라인에서 영문 한글 특수문자 숫자 지2779
   추천 하려면..어떻게 해야하죠?(1) 1535
   들어온 경로 URL 기록 남기기1685
중복 로그인 방지법4350
   세션 DB 처리 소스1607
   한페이지에서 체크된것은 Y, 아니면 N으로 업데이트(1) 1594
   [제로보드] 쪽지 도착하면 자동으로 뜨게 하기(홈마스타)1568
≪ [1]  [2]  [3]  [4]  [5]   ≫

복수단어 검색은 공백(space)로 구분해 주세요.



 
최근 글
[손님]
97
87
240
423
659
392
433
246
366
3819
921
960
1224
979
4282
 
인기 글
[손님]
3150
[홈마스타] setinterval 사용과 중지
5618
3608
3215
3242
3293
3706
4505
10546
6458
3445
3080
4711
3374
3367