CodeIgniter3

09. [CodeIgniter3] 등록 양식 만들기(registration form)

drizzle0925 2021. 12. 30. 09:43
728x90

등록 양식 만들기

간단한 등록양식을 만들어 데이터를 저장하는 방법에 대해 알아보겠습니다.

 

1. 등록 양식에서 입력받은 내용을 student 테이블에 저장합니다.

2. 학생 데이터를 삽입하기 전에 학생 이메일 ID가 이미 존재하는지 확인한 다음 존재하는 경우에는 "사용자가 이미 존재합니다."라는 오류 메시지를 표시하고 존재하지 않는 경우 데이터 베이스에 정보를 저장합니다.

 

데이터 저장을 위해서 student 테이블을 사용하겠습니다. (데이터 베이스는 이전에 만든 db 데이터 베이스를 사용합니다.)

 

student 테이블 구조

create table student(
	student_id int primary key auto_increment,
	name varchar(50),
	email varchar(50),
	password varchar(100),
	mobile bigint,
	course varchar(100)
);

 

Controller

application/controllers/User.php 라는 파일을 생성하고 아래 코드를 입력합니다.

(이 예제에서는 모델을 사용하지 않고 모든 데이터베이스 쿼리는 컨트롤러에 작성하였습니다.)

<?php 
class User extends CI_Controller
{
    public function __construct()
    {
        // CodeIgniter의 기본 생성자 호출
        parent::__construct();
        // 데이터베이스 라이브러리르 수동으로 로드
        $this->load->database();
        // url 헬퍼 호출
        $this->load->helper('url');
    }

    public function index()
    {
        // name값이 register인 input 태그의 value값을 가져옴
        if($this->input->post('register'))
        {
            // post값을 호출함
            $n = $this->input->post('name');
            $e = $this->input->post('email');
            $p = $this->input->post('pass');
            $m = $this->input->post('mobile');
            $c = $this->input->post('course');

            // Model을 따로 만들지 않고 Controller에서 데이터베이스 쿼리를 처리
            $query = $this->db->query("select * from student where email='".$e."'");
            $row = $query->num_rows();
            if($row)
            {
                $data['error'] = '<h3 style="color:red">This user already exists</h3>';
            }
            else
            {
                $query = $this->db->query("insert into student values('','$n','$e','$p','$m','$c')");
                $data['error'] = '<h3 style="color:blue">Your account created successfully</h3>';
            }
        }

        // student_registration view파일에 $data 값을 전달해서 호출
        $this->load->view('student_registration', @$data);
    }
}
?>

 

View

application/views/student_registation.php 파일을 만들고 아래 코드를 입력합니다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Student Registration form</title>
</head>
<body>
    <form method="post">
        <table width="600" align="center" border="1" cellspacing="5" cellpadding="5">
            <tr>
                <td colspan="2"><?php echo @$error; ?></td>
            </tr>

            <tr>
                <td width="230">Enter Your Name</td>
                <td width="329"><input type="text" name="name" /></td>
            </tr>

            <tr>
                <td>Enter Your Email</td>
                <td><input type="text" name="email" /></td>
            </tr>

            <tr>
                <td>Enter Your Password</td>
                <td><input type="password" name="pass" /></td>
            </tr>

            <tr>
                <td>Enter Mobile</td>
                <td><input type="text" name="mobile" /></td>
            </tr>

            <tr>
                <td>Select Your Corse</td>
                <td>
                    <select name="course">
                        <option value="">Select Course</option>
                        <option>PHP</option>
                        <option>Java</option>
                        <option>Wordpress</option>
                    </select>
                </td>
            </tr>

            <tr>
                <td colspan="2" align="center"><input type="submit" name="register" value="Register Me" /></td>
            </tr>
        </table>
    </form>
</body>
</html>

 

 

완성된 양식 폼

 

 

내용일 입력하고 Register Me 버튼을 클릭합니다.

 

 

데이터가 등록되었습니다.

 

이메일 내용이 이미 데이터베이스에 존재하는 경우 화면에 "이미 존재하는 유저입니다."라고 표시되고 데이터는 등록되지 않습니다.

 

Github : https://github.com/jun0925/study/commit/650ef61aaf7ad73673d335824a7a8caa6a7e18c4

728x90