[공지] SMS114.CO.KR 바로가기
www.sms114.co.kr
👉 텔레그램 상담 바로가기

2 분 소요

#

1. 코드이그나이트 프로그램 생성 흐름 메모

1. 컨트롤러 Main.php Loading.

/application/controllers/Main.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Main extends CI_Controller {

	public function index()
	{
		$this->load->view('main');
	}

    public function test1(){
        echo 'aaaaaa';
    }
}

2. 뷰, main.php

/application/views/main.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>메인</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<!-- 이것은 안 넣어도 됨     
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
 -->    
    <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100..900&display=swap" rel="stylesheet">
    <style>
        body{font-family: 'Noto Sans KR', sans-serif;}
       .login_box{max-width:350px;margin:0 auto;} 
       .input_wrap{font-size:12px;margin-bottom:10px;}
       .input_wrap input{width:100%;height:26px;border:0px;border-bottom:solid #000 1px;}
       .login_box .join_text{font-size:12px;text-align:center;with:100%;margin-top:10px;}
       .login_box .join_text span{text-decoration:underline;font-weight:600px;cursor:pointer;}

       .join_box .login_text{font-size:12px;text-align:center;with:100%;margin-top:10px;}
       .join_box .login_text span{text-decoration:underline;font-weight:600px;cursor:pointer;}

       .login_box .email{}
       .login_box .pwd{}
       .join_box{max-width:350px;margin:0 auto;display:none;}
       .join_box .j_email{}
       .join_box .j_pwd{}
       .join_box .j_pwdcf{}
       .join_box .j_name{}
       .login_btn{border:solid #000 1px;width:100%;height:32px;line-height:32px;text-align:center;cursor:pointer;border-radius:8px;}
       .join_btn{border:solid #000 1px;width:100%;height:32px;line-height:32px;text-align:center;cursor:pointer;border-radius:8px;}
       .page_title{font-size:18px;font-weight:500;text-align:center;width:100%;margin-top:30px;margin-bottom:5px;}
       .site_title{font-size:20px;font-weight:700;text-align:center;width:100%;margin-bottom:20px;}
    </style>
</head>

<body>
    <div class="page_title">무엇이든 적어두세요.</div>
    <div class="site_title">로그</div>

    <div class="login_box">
        <div class="input_wrap"> 이메일 <input type="email" class="email" > </div>
        <div class="input_wrap"> 패스워드 <input type="password" class="pwd" > </div>
        <div class="login_btn">로그인</div>
        <div class="join_text">아직 가입하지 않으셨나요? <span>회원가입</span></div>
    </div>

    <div class="join_box">
        <div class="input_wrap"> 이메일 <input type="email" class="j_email" > </div>
        <div class="input_wrap"> 패스워드 <input type="password" class="j_pwd" > </div>
        <div class="input_wrap"> 패스워드 확인 <input type="password" class="j_pwdcf" > </div>
        <div class="input_wrap"> 이름 <input type="text" class="j_name" > </div>
        <div class="join_btn">회원가입</div>
        <div class="login_text">이미 가입하셨나요? <span>로그인</span></div>
    </div>

    <script>
        $(document).ready(function(){
            $('.join_text span').click(function(){
                $('.login_box').hide();
                //$('.join_box').fadeIn();
                //$('.join_box').fadeIn(5000);
                $('.join_box').show();
            });

            $('.login_text span').click(function(){
                $('.join_box').hide();
                //$('.join_box').fadeIn();
                //$('.join_box').fadeIn(5000);
                $('.login_box').show();
            });

            $('.login_btn').click(function(){
                //alert('로그인 버튼 클릭');
                lemail = $('.email').val();
                lpwd = $('.pwd').val();
 

                if(lemail == ''){
                    alert('이메일을 기입 해 주세요.');
                    $('.email').focus();
                    return false;
                }else if(lpwd == ''){
                    alert('패스워드를 입력 해 주세요.');
                    $('.pwd').focus();
                    return false;
                }

                $.ajax({
                    url: '/api/member_login',         
                    type: 'POST',              
                    //dataType: 'json',        
                    data: { 
                        'email': lemail,
                        'pwd': lpwd
                    },
                    success: function(response) {
                        console.log('Success:', response);
                    },
                    error: function(xhr, status, error) {
                        console.error("Error:", error);
                    }
                });                

            });

            $('.join_btn').click(function(){
                //alert('회원가입 버튼 클릭');
                //alert($('.j_email').val());

                jemail = $('.j_email').val();
                jpwd = $('.j_pwd').val();
                jpwdcf = $('.j_pwdcf').val();
                jname = $('.j_name').val();

                if(jemail == ''){
                    alert('이메일을 넣어주세요.');
                    $('.j_email').focus();
                    return false;
                }else if(jpwd == ''){
                    alert('패스워드를 넣어주세요.');
                    $('.j_pwd').focus();
                    return false;
                }else if(jpwdcf ==  ''){
                    alert('패스워드 확인을 넣어주세요.');
                    $('.j_pwdcf').focus();
                    return false;
                }else if(jname == ''){
                    alert('이름을 넣어주세요.');
                    $('.j_name').focus();
                    return false;
                }else if(jpwd != jpwdcf){
                    alert('패스워드를 동일하게 입력해주세요.');
                    $('.j_pwd').focus();
                    return false;
                }

                $.ajax({
                    //console.log('ajax-----회원가입 버튼 클릭');
                    url: 'api/member_join',         
                    type: 'POST',              
                    dataType: 'json',        
                    data: {'email': jemail,'pwd': jpwd,'name': jname},
                    beforeSend: function() {
                        console.log("AJAX 요청 시작!"); // 요청 전에 찍기
                        console.log("보낼 데이터:", {'email': jemail, 'pwd': jpwd, 'name': jname});
                    },
                    success: function(response) {
                        console.log("AJAX 요청 성공! 🎉");
                        console.log(response);
                    },
                    error: function(xhr, status, error) {
                        console.error("에러발생", error);
                    },
                    complete: function() {
                       console.log("AJAX 요청 완료."); // 성공/실패 여부 상관없이 실행
                    }
                });
     
            });
        });
    </script>
</body>
</html>



3. Ajax /api/member_join 호출

/application/controllers/Api.php , member_join() function() 호출

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Api extends CI_Controller {


    function __construct() {
        parent::__construct();
        /* $this->load->model('Member_m'); */
    }

    public function test2(){
        echo 'aaaaaa';
    }

    function member_join(){

        //echo 'aaaaaa';

        $req = $this->input->post();

        $set['email'] = isset($req['email']) ? $req['email'] : '';
        $set['name'] = isset($req['name']) ? $req['name'] : '';
        $set['pwd'] = isset($req['pwd']) ? $req['pwd'] : '';

        $set['pwd'] = md5($set['pwd']);
        $this->load->model('member_m');
 
        //$data['response_data'] = $set;
        $data['response_data'] = $this->member_m->member_join($set);

        $data['response_result'] = array(
            'result_code' => "200",
            'result_message' => "ok"
        );

        echo json_encode($data);
    }
}


4. Model Member_m.php 호출

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Member_m extends CI_Model {

    /*생성자*/
    function __construct() {
        parent::__construct();
    }

    function member_join($set){

        //$this->db->set('regdate', 'now()', false);
        
        $this->db->insert('lg_member', $set);
        $insert_id = $this->db->insert_id();
        return $insert_id;
        

    }
}

필수적 조치 , /application/config/autoload.php 에서 아래 설정 추가

/application/config/autoload.php에서 session, database 라이브러리는 자동 load 되게끔 설정처리

$autoload['libraries'] = array('session','database');

댓글남기기