application/config/database.php에서 정보 입력해 주고
회원정보가 들어갈 db에 sql 쿼리문으로 테이블 생성
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
);
모델 생성
application/models/User_model.php 파일 생성
코드이그나이터는 모델과 컨트롤러 파일 이름 첫 번째 글자를 대문자를 써야 한다
운영 체제 호환성을 일관되게 유지하기 위해서라고 한다
그래서 클래스도 첫 글자가 대문자여야 한다
<?php
class User_model extends CI_Model {
public function __construct() {
$this->load->database();
}
public function verify_user($username, $password) {
$this->db->where('username', $username);
$this->db->where('password', md5($password));
$query = $this->db->get('users');
if ($query->num_rows() == 1) {
return $query->row(0);
} else {
return false;
}
}
}
비밀번호는 md5를 사용하여 비밀번호가 일치하는 데이터를 찾도록 했다.
컨트롤러 생성
application/controllers/Login.php 파일 생성
<?php
class Login extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->helper('url');
$this->load->model('User_model');
}
public function index() {
$this->load->view('login_form');
}
public function authenticate() {
$username = $this->input->post('username');
$password = $this->input->post('password');
if ($this->User_model->verify_user($username, $password)) {
echo "로그인 성공!";
} else {
echo "로그인 실패!";
}
}
}
public function index()는 로그인 페이지를 사용자에게 보여주는 역할
$this->load->view(‘login_form’); 로그인 폼 뷰 파일을 로드
public function authentication() 사용자가 로그인 양식에서 입력한 사용자 이름과 비밀번호를 처리하고 검증
$username = $this->input->post(‘username’); POST 요청을 통해 전달된 유저 네임을 가져옴
$password = $this->input->post(‘password’); POST 요청을 통해 전달된 비밀번호를 가져옴
if ($this->User_model->verify_user($username, $password)) 은 User_model 의 verify_user를 호출하여 전달받은 사용자 이름과 비밀번호를 검증한다 false가 아닌 값을 반환하면 참으로 된다고 한다
뷰 생성
application/views/login_form.php 파일 생성
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<form action="<?php echo site_url('login/authenticate'); ?>" method="post">
Username: <input type="text" name="username" required><br>
Password: <input type="password" name="password" required><br>
<button type="submit">Login</button>
</form>
</body>
</html>
라우팅 설정
application/config/routes.php
$route['default_controller'] = 'login';
$route['login'] = 'login/index';
$route['login/authenticate'] = 'login/authenticate';
코드이그나이터3의 MVC(Model-View-Controller) MVC(Model-View-Controller) 패턴으로 간단한 로그인 페이지를 만들어보았고
정리해 보자면 사용자의 요청은 컨트롤러를 통해 처리되고 요청이 들어오면 컨트롤러는 모델을 호출해서 데이터베이스와 상호작용을 한다 또한 컨트롤러는 데이터를 처리한 후 뷰로 전달하여 사용자에게 적절하게 표시한다.
회원가입도 이런 방식으로 만들고 데이터베이스에 데이터 들어갈 수 있게 해주고 세션 정도 설정해 주면 된다