728x90
반응형
로그인과 회원가입 구현
로그인
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PHP 영양많닭 로그인</title>
<?php include "../include/head.php" ?>
</head>
<body>
<?php include "../include/header.php" ?>
<!-- //header -->
<div id="wrap">
<div id="modal">
<div class="img1">
<img src="../assets/img/Ximg.svg" alt="닫기">
</div>
<h2>LOGIN</h2>
<div id="logo">
<img src="../assets/img/logo.svg" alt="로고">
</div>
<div class="login__form">
<form action="loginsave.php" name="loginSave" method="post">
<fieldset>
<legend class="blind">로그인 영역</legend>
<div class="user-box">
<label for="youID">아이디</label>
<input type="youID" id="youID" name="youID" placeholder="아이디" required>
</div>
<div class="user-box">
<label for="youPass">비밀번호</label>
<input type="password" id="youPass" name="youPass" placeholder="비밀번호" required>
</div>
<div class="option">
<li><a href="#">아이디 찾기</a></li>
<li><a href="#">비밀번호 변경</a></li>
<li><a href="#">회원가입</a></li>
</div>
<button type="submit" class="button">로그인</button>
</fieldset>
</form>
</div>
</div>
</div>
<!-- //main -->
<?php include "../include/footer.php" ?>
<!-- // footer -->
</body>
</html>
로그인 데이터 저장
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>로그인 세이브</title>
<?php include "../include/head.php" ?>
</head>
<body class="gray">
<!-- //skip -->
<?php include "../include/header.php" ?>
<!-- //header -->
<main id="main">
<?php
include "../connect/connect.php";
include "../connect/session.php";
$youID = $_POST['youID'];
$youPass = $_POST['youPass'];
// echo $youEmail, $youPass;
//데이터 출력
function msg($alert){
echo "<p class = 'intro__text'>$alert</p>";
}
// 데이터 조회
$sql = "SELECT memberID, youID, youName, youPass FROM members WHERE youPass = '$youPass' AND youID = '$youID'";
$result = $connect -> query($sql);
if($result){
$count = $result -> num_rows;
if($count == 0){
msg("이메일 또는 비밀번호가 틀렸습니다. 다시 한번 확인해주세요!<br><div class='intro__btn'><a href='../login/login.php'>로그인</a></div>");
} else {
//로그인 성공
$memberInfo = $result -> fetch_array(MYSQLI_ASSOC);
echo "<pre>";
var_dump($memberInfo);
echo "</pre>";
// 세션 생성
$_SESSION['memberID'] = $memberInfo['memberID'];
$_SESSION['youID'] = $memberInfo['youID'];
$_SESSION['youName'] = $memberInfo['youName'];
Header("Location: ../main/main.php");
}
}
?>
</div>
<!-- //intro__inner -->
</main>
<!-- //main -->
<?php include "../include/footer.php" ?>
<!-- // footer -->
</body>
</html>
회원가입
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<?php include "../include/head.php" ?>
</head>
<body>
<?php include "../include/header.php" ?>
<div id="modalwrap">
<div id="modal">
<div class="img1">
<img src="../assets/img/Ximg.svg" alt="닫기">
</div>
<div class="img2">
<img src="../assets/img/logo.svg" alt="로고">
</div>
<div class="Termsup__form">
<form action="joinsave.php" name="join" method="post">
<fieldset>
<legend class="blind">회원가입 영역</legend>
<div class="item">
<div>
<label for="youEmail" class="required">이메일</label><br>
<input type="text" id="youEmail" name="youEmail" placeholder="이메일을 적어주세요!" required>
</div>
<div>
<label for="youID" class="required">아이디</label><br>
<input type="text" id="youID" name="youID" placeholder="아이디를 적어주세요!" required>
</div>
<div>
<label for="youPass" class="required">비밀번호</label><br>
<input type="password" id="youPass" name="youPass" placeholder="비밀번호를 적어주세요!" required>
</div>
<div>
<label for="youPassC" class="required">비밀번호 확인</label><br>
<input type="password" id="youPassC" name="youPassC" placeholder="다시 비밀번호를 적어주세요!" required>
</div>
<div>
<label for="youName" class="required">이름</label><br>
<input type="text" id="youName" name="youName" placeholder="이름을 적어주세요!" required>
</div>
<div>
<label for="youPhone" class="required">연락처</label><br>
<input type="text" id="youPhone" name="youPhone" placeholder="연락처를 적어주세요!" required>
</div>
</div>
<button type="submit" class="button">가입하기</button>
</fieldset>
</form>
</div>
</div>
</div>
<?php include "../include/footer.php" ?>
</body>
</html>
회원가입 데이터 저장
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>회원가입 완료페이지</title>
<?php include "../include/head.php" ?>
</head>
<body class="gray">
<?php include "../include/header.php" ?>
<!-- //header -->
<main id="main" class="container">
<div class="intro__inner">
<?php
include "../connect/connect.php";
$youEmail = $_POST['youEmail'];
$youName = $_POST['youName'];
$youID = $_POST['youID'];
$youPass = $_POST['youPass'];
$youPassC = $_POST['youPassC'];
$youPhone = $_POST['youPhone'];
$regTime = time();
// echo $youEmail, $youName, $youPass, $youPhone;
// $sql = "INSERT INTO yungyangMember(youEmail, youName, youPass, youPhone, regTime) VALUES('$youEmail','$youName', '$youPass', '$youPhone', '$regTime')";
// $connect -> query($sql);
//메세지 출력
function msg($alert){
echo "<p class='intro__text'>$alert</p>";
};
//이메일 유효성 검사
$check_mail = preg_match("/^[a-z0-9_+.-]+@([a-z0-9-]+\.)+[a-z0-9]{2,4}$/", $youEmail);
if($check_mail == false){
msg("이메일이 잘못되었습니다. 다시 한번 확인해주세요!");
}
//아이디 유효성 검사
$check_ID = preg_match("/^[a-zA-Z0-9]+$/", $youID);
if($check_ID == false){
msg("아이디 형식이 잘못되었습니다. 아이디는 영어와 숫자 조합만 가능합니다!");
exit;
}
//이름 유효성 검사
$check_name = preg_match("/^[가-힣]{9,15}+$/", $youName);
if($check_name == false){
msg("이름은 한글만 가능합니다. 또는 3~5글자만 가능합니다.");
exit;
}
//비밀번호 유효성 검사
if($youPass !== $youPassC){
msg("비밀번호가 일치하지 않습니다. 다시 한번 확인해주세요!");
exit;
}
// $youPass = sha1($youPass);
//휴대폰 번호 유효성 검사
$check_number = preg_match("/^(010|011|016|017|018|019)-[0-9]{3,4}-[0-9]{4}$/", $youPhone);
if($check_number == false){
msg("번호가 정확하지 않습니다. 올바른 번호(000-0000-0000) 형식으로 작성해주세요!");
exit;
}
// 이메일 중복 검사
$isEmailCheck = false;
$sql = "SELECT youEmail FROM yungyangMember WHERE youEmail = '$youEmail'";
$result = $connect -> query($sql);
if($result){
$count = $result -> num_rows;
if($count == 0){
$isEmailCheck = true;
} else {
msg("이미 회원가입이 되어 있습니다. 로그인 해주세요!");
exit;
}
} else {
msg("에러발생1: 관리자에게 문의하세요!");
exit;
}
// 아이디 중복 검사
$isIDCheck = false;
$sql = "SELECT youID FROM yungyangMember WHERE youID = '$youID'";
$result = $connect -> query($sql);
if($result){
$count = $result -> num_rows;
if($count == 0){
$isIDCheck = true;
} else {
msg("이미 회원가입이 되어 있습니다. 로그인 해주세요!");
exit;
}
} else {
msg("에러발생1: 관리자에게 문의하세요!");
exit;
}
// 핸드폰 중복 검사
$isPhoneCheck = false;
$sql = "SELECT youPhone FROM yungyangMember WHERE youPhone = '$youPhone'";
$result = $connect -> query($sql);
if($result){
$count = $result -> num_rows;
if($count == 0){
$isPhoneCheck = true;
} else {
msg("이미 회원가입이 되어 있습니다. 로그인 해주세요!");
exit;
}
} else {
msg("에러발생2: 관리자에게 문의하세요!");
exit;
}
// 회원가입
if($isEmailCheck == true && $isPhoneCheck = true){
// 데이터 입력하기
$sql = "INSERT INTO yungyangMember(youEmail, youID, youName, youPass, youPhone, regTime) VALUES('$youEmail', '$youID', '$youName', '$youPass', '$youPhone', '$regTime')";
$result = $connect -> query($sql);
if($result){
msg("회원가입을 축하합니다! 로그인 해주세요! <div class='intro__btn'><a href='../login/login.php'>로그인</a></div>");
exit;
} else {
msg("에러발생3: 관리자에게 문의하세요!");
exit;
}
} else {
msg("이미 회원가입이 되어 있습니다. 로그인해주세요!");
exit;
}
?>
</div>
<!-- intro__inner -->
</main>
<!-- //main -->
</body>
</html>