회원인증에 대하여 – 11.회원별페이지

특정 회원만 사용할 수 있는 인증페이지를 작성하는 방법에 대한 예제입니다.

이 예제는 이전의 “세션라이브러리 예제”와 동일한 예제로, 변경된 것은 세션 라이브러리 대신에 세셔너클래스를 사용하여 세션 관리를 합니다. 인터페이스는 거의 동일합니다. 소스 코드는 대폭적으로 수정하였습니다.

회원 정보 테이블의 구조(MySQL의 경우)

회원 정보 테이블에 저장된 회원 정보(MySQL의 경우)

이전 버전에서 사용하던 회원 정보가 변경되었습니다. 각 회원 정보를 아래와 같이 다시 생성해 주십시요.

userid password
user1 test
user2 test
user3 test

웹사이트 구성도

< 웹사이트 구성도 >

홈페이지에서 로그인 정보(사용자 ID, 비밀번호)를 입력합니다. 로그인 정보를 전송받은 웹서버는 회원 정보 테이블에 저장된 회원 정보와 비교하여 회원임이 판명되면 회원인증ID를 발급하고, 회원이 아니라면 다시 로그인 정보를 입력하도록 요구합니다. 이 프로그램에서 $access_userid에 로그인 할 때 입력된 사용자 ID를 설정하는 것으로 회원인증ID를 발급합니다. 회원 전용 페이지(페이지 #1, #2, #3, #4)에서는 $access_userid를 확인함으로써 로그인 과정을 거친 회원임을 알 수 있으며 따라서 별도의 인증 과정없이 회원 전용 서비스를 제공하게 됩니다.

회원 전용 페이지 서두에는 현재 페이지의 퍼미션 등급과 퍼미션 회원ID를 아래와 같이 설정합니다.

위와 같이 $permission_type에 “owner”을 설정하면 특정 회원에게만 제공되는 페이지로 이 때는 반드시 $permission_user에 회원ID를 지정하여야 합니다. 위와 같은 경우는 회원ID가 “user1″인 회원에게만 허용된 페이지입니다. 만약 로그인에 성공한 모든 회원에게 페이지 접급을 허용하려면 아래와 같이 $permission_type에 “login”을 설정하면 됩니다. 이 때는 $permission_user를 지정할 필요가 없습니다.

페이지 구성 및 회원별 접근 제한

예제 프로그램에서는 페이지 #1, #2, #3는 퍼미션 등급이 “owner”으로 설정되어 있고, 페이지 #4는 “login”으로 설정되어 있습니다.

페이지 구성 접근이 허용된 회원
홈페이지
(로그인 정보 입력)
모든 방문자
페이지 #1 로그인한 “user1” 회원
페이지 #2 로그인한 “user2” 회원
페이지 #3 로그인한 “user3” 회원
페이지 #4 로그인한 모든 회원

예제 #1과 예제 #2

예제 #1은 로그인후에 오른쪽에 사용자목록이 나타나고 이 목록에서 사용자페이지를 선택할 수 있습니다. 반면 예제 #2는 사용자목록 없이 로그인 하면 바로 자신의 페이지로 넘어가도록 하였습니다. 예제 #2는 원하시는 분이 있어 추가하였습니다. 소스는 Tip&Tech&Download 게시판에 등록되어 있습니다.

member-0.0.4

member-0.2.0

버전 0.2.0에서는 세셔너함수 0.2.1을 이용하여 작성되었습니다. 세셔너함수를 인클루드하는 부분만 삭제하면 PHP4의 세션함수를 이용하여 동작합니다.

답글 남기기