회원가입

회원가입(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;
    }
?>

Last updated