코드이그나이터3 로그인 페이지 간단히 만들어보기

php

 

 

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) 패턴으로 간단한 로그인 페이지를 만들어보았고

정리해 보자면 사용자의 요청은 컨트롤러를 통해 처리되고 요청이 들어오면 컨트롤러는 모델을 호출해서 데이터베이스와 상호작용을 한다 또한 컨트롤러는 데이터를 처리한 후 뷰로 전달하여 사용자에게 적절하게 표시한다.

회원가입도 이런 방식으로 만들고 데이터베이스에 데이터 들어갈 수 있게 해주고 세션 정도 설정해 주면 된다

 

 

 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다