뚝딱뚝딱 대자보군
소개
- 온라인 상에서 이벤트 신청을 받고, 신청 내역을 관리할 수 있는 프로그램
요구사항
- 웹에서 이벤트 신청을 받을 수 있어야 합니다.
- E-Mail 주소만으로 신청이 가능해야 한다.
- E-Mail 인증을 통해 신청이 완료되어야 한다.
- 신청자가 신청 내역을 조회할 수 있어야 한다.
- 신청자가 신청 내역을 수정할 수 있어야 한다.
- 신청자가 신청을 취소 할 수 있어야 한다.
-
조회, 수정, 취소를 하기 위해서는 인증번호를 입력해야만 한다.
- 인증 번호는 요청시 신청자의 E-Mail 로 발송한다.
- 인증 번호의 유효기간은 1시간으로 한다. -> 1시간이 지난 후엔 다시 발급 받아야 한다.
- 인증 번호는 신청자 E-Mail + 접속자 IP + 발급 요청 시각 => MD5 로 생성한다.
- 이벤트 신청서의 항목을 자유롭게 지정 할 수 있어야 한다.
- 항목은 형태는 HTML Form 에서 지원하는 모든 형태를 지정할 수 있어야 한다.
- 필수 항목을 지정할 수 있어야 한다.
-
전체 신청자 목록을 공개 할 수 있어야 한다.
- 전체 신청자 목록의 공개 항목을 지정할 수 있어야 한다.
- 폼 빌더를 이용하여 신청 항목들을 선택 할 수 있어야 한다. phpletter_20071204.zip ==> byebye~~^^+
-
이미 신청한 사람이 다시 신청하는 경우
- 처음 신청할 때와 동일하게 진행되나 DB 에 insert 가 아니라 update 로 동작한다. -> 이렇게 하면 인증번호 재발급이 해결된다.
-
인증 방법
- 신청서 폼에서 인정번호 전송 팝업을 띄워 입력된 E-Mail 로 인증번호를 전송하도록 한다.
- 전송된 인증번호를 신청서 폼에 입력한다.
- 서버측에서는 인증번호 테이블에 저장된 인증번호와 신청서에 입력된 인증번호를 비교하여 유효한지는판단한다.
- 인증번호가 유효한 경우 신청서가 DB에 저장된다.
-
HTML 폼에서 prefix 가 evereg_ 인 경우 신청서의 데이터로 취급하여 DB 에 저장한다.
- Ex) evereg_email, evereg_name ...
환경설정
-
ini파일 사용, 확장자 php(외부에서 읽히지 않도록)
- 인증값의 유효시간
- 설치 디렉토리
- 관리자 정보 - 이름, 이메일
필요한 화면
- 이벤트 목록 화면
- 이벤트 상세 정보 / 수정 화면
- 신청 목록 화면
- 신청 상세 정보 / 수정 화면
-
인증번호 전송 화면 (팝업용)
- 인증 번호 전송 action
- 인증번호 E-Mail 본문 HTML
-
신청 정보 DB 저장 action
- 인증번호 검증
- 기본 정보 ( E-Mail, Name 등 )를 DB에 저장
- 확장 정보 저장을 위하 디렉터리 생성
- 확장 정보를 파일로 저장
DB ERD
SQL
- events
- create table events ( event_id int(10) auto_increment, title varchar(200) not null default '', manager_name varchar(50) not null default '', manager_contact varchar(50) not null default '', open_date datetime not null default '0000-00-00 00:00:00', close_date datetime not null default '0000-00-00 00:00:00', reg_date datetime not null default '0000-00-00 00:00:00', primary key ( event_id ) );
- applicants
- create table applicants ( event_id int, email varchar(50) , name varchar(50) not null default '', attendance char(1) not null default 'N', ip varchar(15) not null default '', reg_date datetime not null default '0000-00-00 00:00:00', ext_filename varchar(100) not null default '', primary key (event_id, email) );
- application_data
- create table applicants_data ( event_id int, email varchar(50) not null default '', data text, primary key (event_id,email));
- verificationkeys
- create table verificationkeys ( event_id int, email varchar(50) not null default '', verificationkey char(54) not null default '', verified char(1) not null default 'n', verified_date datetime not null default '0000-00-00 00:00:00', primary key (event_id, email ) );
디렉터리 / 파일 구조 ( 굵은 글씨는 디렉터리 )
-
evereg
- evereg.php
- config.ini.php
-
data
-
[EVENT_ID]
-
[YYYMMDD]
- [APPLICANT_ID].php
-
-
화면
- 이벤트 목록 화면
- 이벤트 상세 보기 / 수정 화면
- 신청자 목록 화면
- 신청자 상세 정보 보기 / 수정 화면
History
Last edited on 03/04/2008 20:10 by dosuser
Comments (0)