[공지] SMS114.CO.KR 바로가기
www.sms114.co.kr
👉 텔레그램 상담 바로가기
[platform] 회원가입과 로그인 - php 프로그램 기록
#
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');
댓글남기기