/ php / index / english dictionary

 회원가입 |  로그인

{쿠키를 이용한 사용자 인증}
( home ) 2003-05-20 09:21:57

쿠키 사용자 인증 방법입니다. jsp나 asp에서 사용되고 있는 session tracking과 같은 방법입니다.
c 프로그램으로 짠 cgi를 사용하고 있습니다만, php로도 간단히 porting할 수 있을 겁니?

<<< ---------------------
1. 패스워드 관리 테이블
create table passwd (
userid char(16) not null,
passwd char(16) not null,
naccess int,
lastaccess bigint,
primary key (userid)
) ;
insert into passwd values('[userid]',encrypt('[passwd]'), 0, 0);
ex) insert into passwd values('taesung',encrypt('taesung'), 0, 0);

2. 패스워드 체크하기
update passwd set naccess=naccess+1
where userid='[내아이디]' and passwd = encrypt('[친패스워드]', passwd)
ex) SQL_QUERY("update passwd set naccess=naccess+1, lastaccess=unix_timestamp()"
" where userid='%s' and passwd = encrypt('%s', passwd)",
getarg("userid"), getarg("passwd"));
를 한다음 mysql_affected_rows(&mysql)를 해서 결과가 1이 안나오면 틀린 패스워드

rand_id 이용해서 sessionid를 만들어서
Set-Cookie: sessionid=[세션아이디]
와 같이 세팅해주고

create table session (
sessionid char(32) not null, // 세션id
userid char(16) not null,
usergroup varchar(255),
time_logon bigint not null, // 처음 접속한 시간
lastaccess bigint not null, // 마지막 접속시간
urgent_msg varchar(255), // 쪽지 보낼때 쓰자
ifmember enum('y','n') not null default 'n', // 손님?
primary key (sessionid)
) ;
insert into session values ('[세션아이디]', '[사용자아이디]', '[사용자그룹리스트]',
unix_timestamp(), unix_timestamp(), ' );

로 넣어주자.

3. 세션id 확인하기
Cookie: sessionid=[세션아이디]
: 이건 getenv("HTTP_COOKIE"); 이걸로 확인이 된다.!!
30분 이상된 오랜 커넥션들은 지우자.
delete session where lastaccess < unix_timestamp()- 60*30;
update session set access=unix_timestamp()
where sessionid=[쿠키의세션아이디];
를 한다음 mysql_affected_rows(&mysql)를 해서 결과가 1이 안나오면 오래된 세션id니까 무효

4. 커넥션 끊기
delete session where sessionid=[커넥션아이디]; ^^;

additional 노트...

1. 사용자가 처음 login 할때... 사용자가 userid와 passwd를 보낼때 SSL을 이용한다. put으로 passwd 그냥 보내는 경우, 패킷스니핑으로 다 잡힐 수 있기 때문이다.

2. 만약에 사용자가 쿠키를 사용하지 못하는 경우는 sessionid를 get으로 제시할 수 있게 코드를 한다.



  목록

 . 
 php 게시판 소스 2 
 php 게시판 소스 1 
 php 게시판 
 게시판 짜기위한 게시판 ^-^; 
 문자열 연결 연산자 . 마침표    : 스터디
 러닝 php 책소스    : 스터디
 php 폼 자동완성  비밀글입니다  : 폼테그
 디데이 d-day 만들기    : asp
 파일 include 하기    : 팁
 php 간단한 카운터    : 팁
 입력폼에서 엔터키 치면 스크립트 실행하기.    : 팁
 response체, request객체, server객체    : asp
 링크    : asp
 반복되는 링크 묶기    : asp
 ....  비밀글입니다  : 공지
 텟넷 명령어    : 팁
 텔넷 접속    : 팁
 간단한 방명록 소스    : 스터디
 사이트 [1]   : 팁
 mysql 기본설정    : MySql
 ssh    : 팁
 zterm    : 팁
 자바 키워드    : 팁
 자바개발 프로그램설치    : 팁
 [강의] 게시판 목록을 보여주는 부분입니다..    : 스터디
 while 문으로 이미지쉽게보이기 [2]   : 팁
 php 7-2    : 스터디
 php 7-1    : 스터디
 php 6    : 스터디
 php 5    : 스터디
 php4    : 스터디
 php3    : 스터디
 php2    : 스터디
 php1 [3]   : 스터디
 CREATE TABLE    : MySql
 SQL 1    : 스터디
 문단 양쪽정렬    : 스터디
 초간단 php 랜덤 이미지 및 랜덤 배경이미지 소스    : 팁
  [정보] 초보분들을 위한 PC부품 구매를 위한 도우미    : 팁
 쿠키를 이용한 사용자 인증    : 팁
 테이블 색 다르게 지정 하기 다른방법    : 팁
 자동링크 function    : 팁
 [리눅스] 리눅스 기본명령어 50    : 스터디
 my sql    : MySql
 Database의 구조    : 스터디
 데이터 베이스 1    : 스터디

    목록            1

Copyright 1999-2018 Zeroboard / skin by Yoojunge