📝
서은 STUDY_SCRIPT
  • JAVASCRIPT 기록
  • JAVASCRIPT 문법정리
    • 데이터 저장하기
    • 데이터 불러오기
    • 데이터 실행하기
    • 데이터 제어하기
    • 면접질문 정리
  • PHP를 이용한 사이트 작업
    • PHP와 MySQL
      • 댓글쓰기
      • 회원가입
      • 로그인
      • 게시판
        • 페이지네이션 & 게시글보기
        • 수정/삭제/목록/검색
  • 생활코딩 JavaScript
    • JavaScript 입문수업
      • Basic
        • 자바스크립트 기본 세팅
        • 데이터타입
        • 변수
        • 연산자
        • 조건문
        • 반복문
        • 함수
        • 배열
        • 객체
        • 모듈
        • 정규표현식
      • 함수지향
        • 유효범위
        • 값으로서 함수
        • 값으로서 콜백
        • 클로저
        • arguments
        • 함수의 호출
      • 객체지향
        • 생성자와 new
        • 전역객체
        • this
        • 상속
        • Prototype
        • 표준내장객체의 확장
        • Object
        • 데이터 타입
        • 복제 & 참조
    • JavaScript Basic
      • 자바스크립트란?
      • 데이터타입
      • 변수와 대입연산자
      • 제어할 태그 선택
      • 비교연산자와 불리언
      • 조건문 if
      • 리팩토링
      • 배열 [ ]
      • 반복문 while
      • 배열과 반복문
        • 배열과 반복문의 활용
      • 함수
        • 함수의 활용
      • 객체 { }
        • 객체와 반복문 for~in
        • 프로퍼티와 메소드
        • 객체의 활용
      • 파일로 쪼개서 정리정돈
      • 라이브러리 & 프레임워크
      • UI & API
    • Web Browser
      • JavaScript란?
      • BOM
        • 전역객체 window
        • 사용자와 커뮤니케이션
        • Location 객체
        • Navigator 객체
        • 창 제어
      • DOM
        • 제어 대상 찾기
        • jQuery
        • HTMLElement
        • Element 객체
          • 식별자 API
          • 조회 API
          • 속성 API
        • Node 객체
          • Node 관계 API
          • Node 종류 API
          • Node 변경 API
          • jQuery 노드 변경 API
          • 문자열로 노드 제어
        • HTMLCollection
      • 이벤트
        • 이벤트 등록
        • 이벤트 전파(버블링과 캡처링)
        • 이벤트 기본 동작 취소
        • 이벤트 타입
      • 네트워크 통신
        • Ajax
        • JSON
  • NOMAD JAVASCRIPT
    • VanillaJS
      • Why JS?
      • ES5, ES6
      • Basic
        • Alert & Console
        • Variable
        • Data Types
        • Array & Object
      • Function
      • DOM
        • Event & Event handler
        • Conditional
        • Function Practice
      • Momentum App
        • Making a JS Clock
        • Saving the User Name
        • To-Do List
        • Image Background
        • Getting Weather
  • DREAM CODING
    • 자바스크립트 기초 강의 (ES5+)
      • JavaScript 역사
      • async & defer / Strict Mode
      • Variable / Hoisting / Data Type
      • Operator / if / Loop
      • Function
        • 함수의 선언
        • 함수의 표현
      • Class
      • Object
      • Array
      • Array API
      • JSON
      • Callback
      • Promise
      • Async & Await
  • WEB BOS
    • #JavaScript30
Powered by GitBook
On this page
  • 회원가입(Join)
  • 회원가입 TABLE 생성

Was this helpful?

  1. PHP를 이용한 사이트 작업
  2. PHP와 MySQL

회원가입

회원가입(Join)

회원가입 파일생성

create/createMember.php

login/join.php, joinSave.php

회원가입 TABLE 생성

  1. create/createMember.php

<?php
    include "../connect/connect.php";

    $sql = "CREATE TABLE studyMember (";
	$sql .= "studyMemberID int(10) unsigned NOT NULL AUTO_INCREMENT,";
	$sql .= "youEmail varchar(40) NOT NULL,";
	$sql .= "youName varchar(10) NOT NULL,";
	$sql .= "youPass varchar(20) NOT NULL,";
	$sql .= "youBirth varchar(10) NOT NULL,";
	$sql .= "youPhone varchar(11) NOT NULL,";
	$sql .= "regTime int(15) NOT NULL,";
	$sql .= "PRIMARY KEY (studyMemberID)) CHARSET=utf8";

    $result = $connect -> query($sql);

    if( $result ){  
        echo "Create Table Complete";
    } else {
        echo "Create table false";
    }
?>

회원가입 파일생성

login/join.php, joinSave.php

2. login/join.php (HTML 양식저장)

3. login/joinSave.php

회원가입

  1. 회원가입 데이터 입력

  2. 이메일/비밀번호/이름/생년월일/폰번호 유효성 검사

  3. 이메일/폰번호 중복검사

  4. 회원가입 절차 진행

  • 회원가입 기본 데이터

<?php
    include "../connect/connect.php";
    
    $youEmail = $_POST['youEmail'];
    $youPass = $_POST['youPass'];
    $youPassC = $_POST['youPassC'];
    $youName = $_POST['youName'];
    $youBirth = $_POST['youBirth'];
    $youPhone = $_POST['youPhone'];
    $regTime = time();
  • 메세지 출력

function msg($alert){
    echo "<p class='sub'>{$alert}</p>";
}
  • 유효성 검사

(이메일 검사 : 정규식 표현)

현재는 HTML의 input태그의 type요소 속성에 적용되어 있기 때문에 사용하지 않음

$check_email = preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $youEmail);
//0-9a-zA-Z 작성 가능 범위 : 0~9, a~z, A~Z의 범위를 뜻함

1. 이메일 검사 : 내장 함수

내장함수

Description

var_dump

변수의 정보를 출력

filter_var

변수의 정보를 필터링하여 유효성을 검사할 때 사용

//var_dump(filter_var('sample@example.com', FILTER_VALIDATE_EMAIL));

$check_email = filter_var($youEmail, FILTER_VALIDATE_EMAIL);

if( $check_email == false ){
    msg("이메일이 잘못되었습니다. <br> 올바른 이메일을 적어주세요!");
    exit;
}
//정보의 필터링이 유효하면 true - 데이터반환
//정보의 필터링이 실패하면 false - 메세지출력

2. 비밀번호 검사

//비밀번호 확인 
if( $youPass !== $youPassC ){
    msg("비밀번호가 일치하지 않습니다. <br> 다시 한번 확인해주세요!");
    exit;
}

//비밀번호 암호화
$youPass = sha1('web'.$youPass);

3. 이름 검사

$check_name = preg_match("/^[가-힣]{1,}$/", $youName);

if( $check_name == false ){
    msg("이름이 정확하지 않습니다. <br> 한글로 적어주세요!");
    exit;
}

4. 생년월일 유효성 검사

$check_birth = preg_match("/^(19[0-9][0-9]|20\d{2})-(0[0-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $youBirth);

if( $check_birth == false ){
    msg("생년월일이 잘못되었습니다. <br> 올바른 생년월일(YYYY-MM-DD) 적어주세요!");
    exit;
}

5. 휴대폰 번호 유효성 검사

$check_number = preg_match("/^(010|011|016|017|018|019)-[0-9]{3,4}-[0-9]{4}$/", $youPhone);

if( $check_number == false ){
    msg("번호가 잘못되었습니다. <br> 올바른 번호(000-0000-0000)를 적어주세요!");
    exit;
}

6. 중복 검사

  • 이메일 중복 검사

$isEmailCheck = false;

$sql = "SELECT youEmail FROM studyMember WHERE youEmail = '$youEmail'";
$result = $connect -> query($sql);

if( $result ){
    $count = $result -> num_rows;

    if( $count == 0 ){
        $isEmailCheck = true;
    } else {
        msg("회원가입을 했었네요!!!. 로그인을 해주세요!!");
        exit;
    }
} else {
    msg("에러발생01(youEmail) : 관리자에게 문의하세요!!");
    exit;
}
  • 휴대폰 번호 중복 검사

$isPhoneCheck = false;

$sql = "SELECT youPhone FROM studyMember WHERE youPhone = '$youPhone'";
$result = $connect -> query($sql);

if( $result ){
    $count = $result -> num_rows;

    if( $count == 0 ){
        $isPhoneCheck = true;
    } else {
        msg("회원가입을 했었네요!!!. 로그인을 해주세요!!");
    }
} else {
    msg("에러발생02(youPhone) : 관리자에게 문의하세요!!");
    exit;
}

9. 회원가입 절차 진행 (이메일과 휴대폰번호의 중복검사가 통과되었을 때)

//회원 가입
    if($isEmailCheck == true && $isPhoneCheck == true){
        
        $sql = "INSERT INTO studyMember(youEmail, youName, youPass, youBirth, youPhone, regTime) VALUES('$youEmail', '$youName', '$youPass', '$youBirth', '$youPhone', '$regTime')";
        $result = $connect -> query($sql);

        if($result){
            msg("회원가입을 축하합니다. 로그인 해주세요!!!");
        } else {
            msg("에러발생03 : 관리자에게 문의하세요!!");
            exit;
        }
    } else {
        msg("다시 한번 확인하고 회원가입해주세요!!");
        exit;
    }
?>
Previous댓글쓰기Next로그인

Last updated 3 years ago

Was this helpful?

5KB
join.php
join.php 양식
5KB
joinSave.php