phpsource/회원인증2000. 11. 21. 14:16

특정 회원만 사용할 수 있는 인증페이지를 작성하는 방법에 대한 예제입니다.
이 예제는 이전의 "세션라이브러리 예제"와 동일한 예제로, 변경된 것은 세션 라이브러리 대신에 세셔너클래스를 사용하여 세션 관리를 합니다. 인터페이스는 거의 동일합니다. 소스 코드는 대폭적으로 수정하였습니다.
회원 정보 테이블의 구조(MySQL의 경우)
[code sql;gutter:false] CREATE TABLE Members ( userid varchar(20) not null PRIMARY KEY, password varchar(16) not null ); [/code]
회원 정보 테이블에 저장된 회원 정보(MySQL의 경우)
이전 버전에서 사용하던 회원 정보가 변경되었습니다. 각 회원 정보를 아래와 같이 다시 생성해 주십시요.
userid password
user1 test
user2 test
user3 test
[code sql;gutter:false] INSERT INTO Members VALUES('user1', 'test'); INSERT INTO Members VALUES('user2', 'test'); INSERT INTO Members VALUES('user3', 'test'); [/code]
웹사이트 구성도
< 웹사이트 구성도 >
홈페이지에서 로그인 정보(사용자 ID, 비밀번호)를 입력합니다. 로그인 정보를 전송받은 웹서버는 회원 정보 테이블에 저장된 회원 정보와 비교하여 회원임이 판명되면 회원인증ID를 발급하고, 회원이 아니라면 다시 로그인 정보를 입력하도록 요구합니다. 이 프로그램에서 $access_userid에 로그인 할 때 입력된 사용자 ID를 설정하는 것으로 회원인증ID를 발급합니다. 회원 전용 페이지(페이지 #1, #2, #3, #4)에서는 $access_userid를 확인함으로써 로그인 과정을 거친 회원임을 알 수 있으며 따라서 별도의 인증 과정없이 회원 전용 서비스를 제공하게 됩니다.
회원 전용 페이지 서두에는 현재 페이지의 퍼미션 등급과 퍼미션 회원ID를 아래와 같이 설정합니다.
[code php;gutter:false] $permission_user = "user1"; $permission_type = "owner"; [/code]
위와 같이 $permission_type에 "owner"을 설정하면 특정 회원에게만 제공되는 페이지로 이 때는 반드시 $permission_user에 회원ID를 지정하여야 합니다. 위와 같은 경우는 회원ID가 "user1"인 회원에게만 허용된 페이지입니다. 만약 로그인에 성공한 모든 회원에게 페이지 접급을 허용하려면 아래와 같이 $permission_type에 "login"을 설정하면 됩니다. 이 때는 $permission_user를 지정할 필요가 없습니다.
[code php;gutter:false] $permission_type = "login"; [/code]
페이지 구성 및 회원별 접근 제한
예제 프로그램에서는 페이지 #1, #2, #3는 퍼미션 등급이 "owner"으로 설정되어 있고, 페이지 #4는 "login"으로 설정되어 있습니다.
페이지 구성 접근이 허용된 회원
홈페이지
(로그인 정보 입력)
모든 방문자
페이지 #1 로그인한 "user1" 회원
페이지 #2 로그인한 "user2" 회원
페이지 #3 로그인한 "user3" 회원
페이지 #4 로그인한 모든 회원
예제 #1과 예제 #2
예제 #1은 로그인후에 오른쪽에 사용자목록이 나타나고 이 목록에서 사용자페이지를 선택할 수 있습니다. 반면 예제 #2는 사용자목록 없이 로그인 하면 바로 자신의 페이지로 넘어가도록 하였습니다. 예제 #2는 원하시는 분이 있어 추가하였습니다. 소스는 Tip&Tech&Download 게시판에 등록되어 있습니다.
버전 0.2.0에서는 세셔너함수 0.2.1을 이용하여 작성되었습니다. 세셔너함수를 인클루드하는 부분만 삭제하면 PHP4의 세션함수를 이용하여 동작합니다.

Posted by 방글24