이번 회원가입 예제는 Spac 기본 Mysql Dao를 사용하여 작성됩니다.
Spac 의 Database 개발 환경은 http://spac.tistory.com/10 를 참고하여 준비합니다.
1. 테이블 생성
위의 내용을 참고하여 테이블을 생성합니다.
이제 회원관련 클래스를 만들겠습니다.
클래스는 User.Class.php 로 생성하며, 회원에 관련된 모든 처리를 이 클래스에서 하도록 하겠습니다.
먼저 User 클래스의 뼈대만 간략하게 만들어보겠습니다.
* Spac/Model/User.Class.php
viewUserRegForm : 로그인 폼 보여주기
setPostVars : POST로 전송된 변수를 맴버변수로 등록하기
regUser : 회원 정보 등록하기
간단하게 User 클래스를 만들어보았습니다.
이제 먼저 회원 가입폼을 보여주는 메소드인 "viewUserRegForm" 를 작성해 보겠습니다.
위 메소드가 호출되면 뷰인 "user_reg.html" 을 출력합니다.
이제 위에서 설정한 "user_reg.html" 를 만들어봅니다.
* Spac/view/user_reg.html"
User 클래스의 viewUserRegForm 메소드를 호출하면 뷰의 user_reg.html 가 출력되도록 만들었습니다.
제대로 출력되는지 보겠습니다.
이번에는 메소드명까지 브라우저에 명시합니다. (아직 execute 메소드가 없음)
브라우저 호출
결과
이제 User 클래스의 setPostVars 와 regUser 메소드에 내용을 넣어 폼에서 전송된 값을 DB에 저장해 보겠습니다.
DB 작업을 하기 위해서 Dao를 사용하겠습니다. 파란색 글자를 보시면 되겠습니다.
* Spac/Model/User.Class.php
브라우저로 결과값을 확인합니다.
* 가입폼 입력 및 전송.
* 가입처리 및 결과 출력
* DB 저장내역 확인
다음에는 User 클래스에 메소드를 추가하여 가입된 회원 조회 및 수정/삭제 프로그램을 작성해 보도록 하겠습니다.
Spac 의 Database 개발 환경은 http://spac.tistory.com/10 를 참고하여 준비합니다.
1. 테이블 생성
Create Table `user_info` (
`user_id` varchar(12) not null,
`user_pw` varchar(40) not null,
`user_id` varchar(12) not null,
`user_pw` varchar(40) not null,
`user_name` varchar(20) not null,
`reg_date` datetime,
primary key (`user_id`)
) engine=innodb;
`reg_date` datetime,
primary key (`user_id`)
) engine=innodb;
위의 내용을 참고하여 테이블을 생성합니다.
이제 회원관련 클래스를 만들겠습니다.
클래스는 User.Class.php 로 생성하며, 회원에 관련된 모든 처리를 이 클래스에서 하도록 하겠습니다.
먼저 User 클래스의 뼈대만 간략하게 만들어보겠습니다.
* Spac/Model/User.Class.php
<?php
class User extends Controller {
var $user_id;
var $user_pw;
var $user_name;
function User () {}
function viewUserRegForm() {
}
function setPostVars() {
}
function regUser() {
}
}
class User extends Controller {
var $user_id;
var $user_pw;
var $user_name;
function User () {}
function viewUserRegForm() {
}
function setPostVars() {
}
function regUser() {
}
}
viewUserRegForm : 로그인 폼 보여주기
setPostVars : POST로 전송된 변수를 맴버변수로 등록하기
regUser : 회원 정보 등록하기
간단하게 User 클래스를 만들어보았습니다.
이제 먼저 회원 가입폼을 보여주는 메소드인 "viewUserRegForm" 를 작성해 보겠습니다.
function viewUserRegForm() {
$this->result_uri = "user_reg.html";
$this->dispatcher();
}
$this->result_uri = "user_reg.html";
$this->dispatcher();
}
위 메소드가 호출되면 뷰인 "user_reg.html" 을 출력합니다.
이제 위에서 설정한 "user_reg.html" 를 만들어봅니다.
* Spac/view/user_reg.html"
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form name="user_reg_form" method="post" action="/User/regUser">
아이디 : <input type="text" name="user_id" value="" size="12">
<br/>
비밀번호 : <input type="password" name="user_pw" value="" size="12">
<br/>
이름 : <input type="text" name="user_name" value="" size="12">
<br/>
<input type="submit" value="회원가입">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form name="user_reg_form" method="post" action="/User/regUser">
아이디 : <input type="text" name="user_id" value="" size="12">
<br/>
비밀번호 : <input type="password" name="user_pw" value="" size="12">
<br/>
이름 : <input type="text" name="user_name" value="" size="12">
<br/>
<input type="submit" value="회원가입">
</form>
</body>
</html>
</body>
</html>
User 클래스의 viewUserRegForm 메소드를 호출하면 뷰의 user_reg.html 가 출력되도록 만들었습니다.
제대로 출력되는지 보겠습니다.
이번에는 메소드명까지 브라우저에 명시합니다. (아직 execute 메소드가 없음)
브라우저 호출
http://localhost/User/viewUserRegForm
결과
이제 User 클래스의 setPostVars 와 regUser 메소드에 내용을 넣어 폼에서 전송된 값을 DB에 저장해 보겠습니다.
DB 작업을 하기 위해서 Dao를 사용하겠습니다. 파란색 글자를 보시면 되겠습니다.
* Spac/Model/User.Class.php
<?php
require_once("/home/sue/www/Spac/controller/Dao/Dao.Class.php"); // getControllerInstance("Dao") 사용할경우 생략가능
class User extends Controller {
var $user_id;
var $user_pw;
var $user_name;
function User () {
$this->Dao = new Dao; //$this->getControllerInstance("Dao"); 로 대체 가능.
$this->Dao->transaction = true;
$this->Dao->connect();
}
function viewUserRegForm() {
$this->result_uri = "user_reg.html";
$this->dispatcher();
}
// POST 로 전송된 값을 맴버변수로 세팅합니다.
function setPostVars() {
$this->user_id = $_POST['user_id'];
$this->user_pw = $_POST['user_pw'];
$this->user_name = $_POST['user_name'];
}
//위에서 저장된 맴버변수 값을 DB에 Insert 합니다.
function regUser() {
$this->setPostVars();
$query = " Insert Into user_info(user_id,user_pw,user_name,reg_date) values(?,password(?),?,NOW()) ";
$this->Dao->prepareStatement($query);
$param = array($this->user_id,$this->user_pw,$this->user_name);
$this->Dao->setParam($param);
$this->Dao->executeStatement();
echo "회원가입에 성공했습니다.";
$this->Dao->closeStatement();
}
}
?>
require_once("/home/sue/www/Spac/controller/Dao/Dao.Class.php"); // getControllerInstance("Dao") 사용할경우 생략가능
class User extends Controller {
var $user_id;
var $user_pw;
var $user_name;
function User () {
$this->Dao = new Dao; //$this->getControllerInstance("Dao"); 로 대체 가능.
$this->Dao->transaction = true;
$this->Dao->connect();
}
function viewUserRegForm() {
$this->result_uri = "user_reg.html";
$this->dispatcher();
}
// POST 로 전송된 값을 맴버변수로 세팅합니다.
function setPostVars() {
$this->user_id = $_POST['user_id'];
$this->user_pw = $_POST['user_pw'];
$this->user_name = $_POST['user_name'];
}
//위에서 저장된 맴버변수 값을 DB에 Insert 합니다.
function regUser() {
$this->setPostVars();
$query = " Insert Into user_info(user_id,user_pw,user_name,reg_date) values(?,password(?),?,NOW()) ";
$this->Dao->prepareStatement($query);
$param = array($this->user_id,$this->user_pw,$this->user_name);
$this->Dao->setParam($param);
$this->Dao->executeStatement();
echo "회원가입에 성공했습니다.";
$this->Dao->closeStatement();
}
}
?>
브라우저로 결과값을 확인합니다.
* 가입폼 입력 및 전송.
* 가입처리 및 결과 출력
* DB 저장내역 확인
다음에는 User 클래스에 메소드를 추가하여 가입된 회원 조회 및 수정/삭제 프로그램을 작성해 보도록 하겠습니다.
'기본예제 > 회원관리' 카테고리의 다른 글
회원데이터의 삭제 :: Spac에서 변수의 전달처리 (0) | 2009.12.04 |
---|---|
2. 회원리스트 조회 (0) | 2009.12.01 |