회원가입(Join)
회원가입 파일생성
create/createMember.php
login/join.php, joinSave.php
회원가입 TABLE 생성
<?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
회원가입
이메일/비밀번호/이름/생년월일/폰번호 유효성 검사
<?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. 이메일 검사 : 내장 함수
변수의 정보를 필터링하여 유효성을 검사할 때 사용
//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;
}
?>