Skip to content

Instantly share code, notes, and snippets.

@mingyu-kwak
Last active April 27, 2016 04:28
Show Gist options
  • Select an option

  • Save mingyu-kwak/2ac78d782e5f88f958ad117945bfedd1 to your computer and use it in GitHub Desktop.

Select an option

Save mingyu-kwak/2ac78d782e5f88f958ad117945bfedd1 to your computer and use it in GitHub Desktop.
PHP 회원가입 레포트

PHP 회원가입 폼 레포트

파일 구성

  • join.html.php : join.html 파일이랑 동일
  • result.php : join.html 의 결과 페이지
  • header.php : join.html, result.php 의 상단 부분
  • footer.html : join.html, result.php 의 하단 부분
  • layout.css : 두 페이지에 사용한 스타일 시트

만든 이

  • 곽민규 (cheolbak at naver.com)
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title><?php echo $title ?></title>
<!-- 구글 웹 폰트 : https://www.google.com/fonts -->
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
<!--
아래의 컴포넌트를 Import
* twitter bootstrap 4 alpha [MIT License] : http://v4-alpha.getbootstrap.com/
* jquery 2 [MIT License] : http://jquery.com/
* font awesome [Code: MIT License | Font: OFL 1.1] : http://fontawesome.io/
-->
<link rel="stylesheet" href="<? echo $bower_location ?>/bower_components/bootstrap/dist/css/bootstrap.min.css">
<script src="<? echo $bower_location ?>/bower_components/jquery/dist/jquery.min.js"></script>
<script src="<? echo $bower_location ?>/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="<? echo $bower_location ?>/bower_components/font-awesome/css/font-awesome.min.css">
<!-- 스타일이 안 맞는 부분 일부 수정-->
<link rel="stylesheet" href="<? echo $bower_location ?>/mid/layout.css">
</head>
<body>
<!-- 로그인 Modal -->
<div class="modal fade" id="loginModal" tabindex="-1" role="dialog" aria-labelledby="loginLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="loginLabel">
로그인
<small class="text-muted">Login</small>
</h4>
</div>
<form method="post">
<div class="modal-body">
<div class="form-group row">
<label for="login_email" class="col-sm-2 form-control-label">이메일</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="login_email" placeholder="example@example.org">
</div>
</div>
<div class="form-group row">
<label for="login_password" class="col-sm-2 form-control-label">비밀번호</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="login_password" placeholder="비밀번호 입력">
</div>
</div>
</div>
<div class="modal-footer">
<button type="reset" class="btn btn-warning-outline" data-dismiss="modal">
<i class="fa fa-times" aria-hidden="true"></i>
닫기
</button>
<button type="submit" class="btn btn-success" data-dismiss="modal">
<i class="fa fa-sign-in" aria-hidden="true"></i>
로그인
</button>
</div>
</form>
</div>
</div>
</div>
<div id="exCollapsingNavbar" class="collapse hidden-md-up">
<div class="bg-faded p-a-1">
<ul class="nav nav-pills nav-stacked">
<li class="nav-item">
<a href="<?php echo $bower_location ?>/index.html"
class="nav-link <?php echo $active == "info" ? "active" : "" ?>">
<i class="fa fa-info" aria-hidden="true"></i>
&nbsp;소개
</a>
</li>
<li class="nav-item">
<a href="<?php echo $bower_location ?>/mid/join.html"
class="nav-link <?php echo $active == "signup" ? "active" : "" ?>">
<i class="fa fa-user-plus" aria-hidden="true"></i>
&nbsp;회원가입
</a>
</li>
<li class="nav-item">
<button class="btn btn-success-outline btn-block" data-toggle="modal" data-target="#loginModal">
<i class="fa fa-sign-in" aria-hidden="true"></i>
&nbsp;로그인
</button>
</a>
</li>
</ul>
</div>
</div>
<!-- 상단 네비게이션 바 -->
<nav class="navbar navbar-full navbar-dark bg-inverse">
<div class="container">
<a href="<?php echo $bower_location ?>/index.html" class="navbar-brand">
<i class="fa fa-paper-plane logo-color" aria-hidden="true"></i>
Cheolbak
</a>
<ul class="nav navbar-nav nav-pills hidden-xs-down">
<li class="nav-item">
<a href="<?php echo $bower_location ?>/index.html"
class="nav-link <?php echo $active == "info" ? "active" : "" ?>">
<i class="fa fa-info" aria-hidden="true"></i>
&nbsp;소개
</a>
</li>
<li class="nav-item">
<a href="<?php echo $bower_location ?>/mid/join.html"
class="nav-link <?php echo $active == "signup" ? "active" : "" ?>">
<i class="fa fa-user-plus" aria-hidden="true"></i>
&nbsp;회원가입
</a>
</li>
<button class="btn btn-success-outline pull-xs-right" data-toggle="modal" data-target="#loginModal">
<i class="fa fa-sign-in" aria-hidden="true"></i>
&nbsp;로그인
</button>
</ul>
<button type="button" data-toggle="collapse" data-target="#exCollapsingNavbar"
class="navbar-toggler pull-xs-right hidden-sm-up">☰</button>
</div>
</nav>
<?php
$bower_location = "..";
$active = "signup";
$title = "회원가입";
include 'header.php';
?>
<div class="container">
<article class="row">
<div class="col-md-1 col-lg-2"></div>
<form class="col-sm-12 col-md-10 col-lg-8" method="post" action="result.php">
<h2 class="header">
<i class="fa fa-user-plus" aria-hidden="true"></i>
회원가입
<small class="text-muted">Sign Up</small>
</h2>
<div class="form-group row" id="in-email">
<label class="col-md-4 form-control-label" for="email">
<i class="fa fa-envelope-o" aria-hidden="true"></i>
이메일&nbsp;
<span class="label label-primary">필수</span>
</label>
<div class="col-md-8 col-sm-12 row email-group">
<div class="col-sm-8 email-input">
<input type="email" class="form-control" name="kmg_email" id="email" placeholder="example@example.com">
</div>
<div class="email-mobile-blank"></div>
<div class="col-sm-4 col-xs-12 email-check">
<button type="button" class="btn btn-success-outline btn-block" data-toggle="modal"
data-target="#emailCheck">
<i class="fa fa-check" aria-hidden="true"></i>
중복 확인
</button>
</div>
</div>
</div>
<div class="form-group row" id="in-pw">
<label for="password" class="col-md-4 form-control-label">
<i class="fa fa-key" aria-hidden="true"></i>
비밀번호&nbsp;
<span class="label label-primary">필수</span>
</label>
<div class="col-md-8">
<input type="password" class="form-control" name="kmg_pw" id="password" placeholder="비밀번호 입력">
</div>
</div>
<div class="form-group row" id="in-pwcheck">
<label for="password-check" class="col-md-4 form-control-label">
<i class="fa fa-key" aria-hidden="true"></i>
비밀번호 확인&nbsp;
<span class="label label-primary">필수</span>
</label>
<div class="col-md-8">
<input type="password" class="form-control" name="kmg_pwcheck" id="password-check" placeholder="비밀번호 재 입력">
</div>
</div>
<div class="form-group row" id="in-name">
<label for="name" class="col-md-4 form-control-label">
<i class="fa fa-user" aria-hidden="true"></i>
이름&nbsp;
<span class="label label-primary">필수</span>
</label>
<div class="col-md-8">
<input type="text" class="form-control" name="kmg_name" id="name" placeholder="이름 입력">
</div>
</div>
<div class="form-group row" id="in-phone">
<label for="phone1" class="col-md-4 form-control-label">
<i class="fa fa-phone" aria-hidden="true"></i>
휴대폰 번호&nbsp;
<span class="label label-primary">필수</span>
</label>
<div class="col-md-8 row input-phone">
<div class="col-xs-3">
<input type="tel" class="form-control" id="phone1" name="kmg_phone1" maxlength="3" placeholder="010">
</div>
<p class="col-xs-1 form-control-label">
&minus;
</p>
<div class="col-xs-3">
<input type="tel" class="form-control" id="phone2" name="kmg_phone2" maxlength="4" placeholder="0000">
</div>
<p class="col-xs-1 form-control-label">
&minus;
</p>
<div class="col-xs-3">
<input type="tel" class="form-control" id="phone3" name="kmg_phone3" maxlength="4" placeholder="0000">
</div>
</div>
</div>
<div class="form-group row" id="id-birth">
<label class="col-md-4 form-control-label">
<i class="fa fa-birthday-cake" aria-hidden="true"></i>
생년월일&nbsp;
<span class="label label-primary">필수</span>
</label>
<div class="fix-margin col-md-8">
<div class="row">
<select class="c-select" name="kmg_birth_year" id="birth-year"></select>
<select class="c-select" name="kmg_birth_month" id="birth-month"></select>
<select class="c-select" name="kmg_birth_day" id="birth-day"></select>
</div>
</div>
</div>
<div class="form-group row" id="in-gender">
<label class="col-md-4 form-control-label">
<i class="fa fa-venus-mars" aria-hidden="true"></i>
성별&nbsp;
<span class="label label-primary">필수</span>
</label>
<div class="col-md-8">
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary-outline">
<input type="radio" name="kmg_gender" value="male" id="gender_male" autocomplete="off">
<i class="fa fa-mars" aria-hidden="true"></i>
남자
</label>
<label class="btn btn-primary-outline">
<input type="radio" name="kmg_gender" value="female" id="gender_female" autocomplete="off">
<i class="fa fa-venus" aria-hidden="true"></i>
여자
</label>
</div>
</div>
</div>
<div class="form-group row" id="in-hobby">
<label class="col-md-4 form-control-label">
<i class="fa fa-bicycle" aria-hidden="true"></i>
취미&nbsp;
<span class="label label-info">선택</span>
</label>
<div class="col-md-8">
<div class="btn-group hobby-field" data-toggle="buttons">
<label class="btn btn-primary-outline">
<input type="checkbox" autocomplete="off" name="kmg_music">
<i class="fa fa-headphones" aria-hidden="true"></i>
음악감상
</label>
</div>
<div class="btn-group hobby-field" data-toggle="buttons">
<label class="btn btn-primary-outline">
<input type="checkbox" autocomplete="off" name="kmg_video">
<i class="fa fa-film" aria-hidden="true"></i>
영상물 감상
</label>
</div>
<div class="btn-group hobby-field" data-toggle="buttons">
<label class="btn btn-primary-outline">
<input type="checkbox" autocomplete="off" name="kmg_photo">
<i class="fa fa-photo" aria-hidden="true"></i>
사진
</label>
</div>
<div class="btn-group hobby-field" data-toggle="buttons">
<label class="btn btn-primary-outline">
<input type="checkbox" autocomplete="off" name="kmg_sports">
<i class="fa fa-futbol-o" aria-hidden="true"></i>
스포츠
</label>
</div>
<div class="btn-group hobby-field" data-toggle="buttons">
<label class="btn btn-primary-outline">
<input type="checkbox" autocomplete="off" name="kmg_book">
<i class="fa fa-book" aria-hidden="true"></i>
독서
</label>
</div>
<div class="btn-group hobby-field" data-toggle="buttons">
<label class="btn btn-primary-outline">
<input type="checkbox" autocomplete="off" name="kmg_game">
<i class="fa fa-gamepad" aria-hidden="true"></i>
게임
</label>
</div>
<div class="btn-group hobby-field" data-toggle="buttons">
<label class="btn btn-primary-outline">
<input type="checkbox" autocomplete="off" name="kmg_travel">
<i class="fa fa-plane" aria-hidden="true"></i>
여행
</label>
</div>
</div>
</div>
<div class="form-group row" id="in-introduce">
<label for="introduce" class="col-md-4 form-control-label">
<i class="fa fa-terminal" aria-hidden="true"></i>
자기소개&nbsp;
<span class="label label-info">선택</span>
</label>
<div class="col-md-8">
<textarea rows="4" class="form-control" name="kmg_introduce" id="introduce"
placeholder="나를 소개해 보세요"></textarea>
</div>
</div>
<div class="row">
<div class="col-xs-5">
<button type="reset" class="btn btn-warning-outline btn-block">
<i class="fa fa-trash" aria-hidden="true"></i>
재입력
</button>
</div>
<div class="col-xs-7">
<button type="submit" class="btn btn-primary btn-block">
<i class="fa fa-check" aria-hidden="true"></i>
회원가입
</button>
</div>
</div>
</form>
</article>
</div>
<!-- 이메일 중복 체크 Modal -->
<div class="modal fade" id="emailCheck" tabindex="-1" role="dialog" aria-labelledby="ModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="ModalLabel">
이메일 중복 체크
</h4>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">확인</button>
</div>
</div>
</div>
</div>
<!-- 휴대전화 입력 및 생일 년월일 생성 JavaScript -->
<script>
// Birthday 처리 구문
var date = new Date();
var year = date.getFullYear();
for (var i = 1900; i <= year; i++) {
if (i == year) {
$("#birth-year").append("<option value='" + i + "' selected>" + i + "년</option>");
}
else {
$("#birth-year").append("<option value='" + i + "'>" + i + "년</option>");
}
}
for (var i = 1; i <= 12; i++) {
$("#birth-month").append("<option value='" + i + "'>" + i + "월</option>");
}
var lastDay = (new Date($("#birth-year").val(), $("#birth-month").val(), 0)).getDate();
for (var i = 1; i <= lastDay; i++) {
$("#birth-day").append("<option value='" + i + "'>" + i + "일</option>");
}
$("#birth-month, #birth-year").change(function () {
var lastDay = (new Date($("#birth-year").val(), $("#birth-month").val(), 0)).getDate();
$("#birth-day option").remove();
for (var i = 1; i <= lastDay; i++) {
$("#birth-day").append("<option value='" + i + "'>" + i + "일</option>");
}
});
// 휴대폰 번호 처리
// 입력 시
$("#phone1").keyup(function () {
if ($(this).val().length == 3) {
$("#phone2").focus();
}
});
$("#phone2").keyup(function () {
if ($(this).val().length == 4) {
$("#phone3").focus();
}
});
// 지울 시
$("#phone2").keydown(function (e) {
if (e.which == 8 && $(this).val().length == 0) {
$("#phone1").focus();
}
});
$("#phone3").keydown(function (e) {
if (e.which == 8 && $(this).val().length == 0) {
$("#phone2").focus();
}
});
</script>
<?php include 'footer.html' ?>
body {
/* 아래 폰트 목록은 https://namu.wiki/ 사이트를 참고하였음. */
font-family: "Open Sans", arial, 'Apple SD Gothic Neo', 'Noto Sans CJK KR',
'본고딕', 'KoPubDotum Medium', '나눔바른고딕', '나눔고딕',
'NanumGothic', '맑은고딕', 'Malgun Gothic', sans-serif !important;
background-color: #fefefe;
}
nav {
margin-bottom: 1rem;
}
.logo-color {
color: lightblue;
}
.nav-item > button {
margin-top: .375rem;
text-align: left;
}
article {
padding: .5rem;
}
.header {
text-align: center;
margin-bottom: 2rem;
}
.header > .text-muted {
display: inline-block;
}
.fix-margin {
padding-left: 1.8rem;
}
input[type="tel"] {
text-align: center;
}
p.col-xs-1.form-control-label {
padding: .375rem 0;
width: 2%;
}
.col-md-8.row > .col-xs-3 {
width: 30%
}
.input-phone {
padding-right: 0;
}
.phone-static {
text-align: center;
}
.c-select {
padding-top: .28rem;
padding-bottom: .28rem;
}
label.btn {
margin-bottom: 0;
}
.hobby-field {
margin-bottom: 1rem;
margin-right: .5rem;
}
#in-hobby {
margin-bottom: 0;
}
.hobby-result {
display: inline-block;
margin-right: 1.5rem;
padding-bottom: 1rem;
}
@media (min-width: 34em) {
.email-group, .email-input, .email-check {
padding-right: 0;
}
}
@media (max-width: 33.9em) {
.email-mobile-blank {
margin-bottom: .6rem;
}
}
.footer {
padding: 2.6rem 0 1.6rem 0;
margin-top: 2.6rem;
font-size: 85%;
background-color: #eee8d5;
}
.footer a {
font-weight: 500;
color: #55595c;
}
.footer-links {
padding-left: 0;
margin-bottom: 2rem;
}
.footer-links li {
display: inline-block;
}
.footer-links li+li {
margin-left: 1rem;
}
<?php
$male_str = "<i class=\"fa fa-mars\" aria-hidden=\"true\"></i>&nbsp;남자";
$female_str = "<i class=\"fa fa-venus\" aria-hidden=\"true\"></i>&nbsp;여자";
$book_str = "<span class='hobby-result'><i class=\"fa fa-book\" aria-hidden=\"true\"></i>&nbsp;독서</span>";
$music_str = "<span class='hobby-result'><i class=\"fa fa-headphones\" aria-hidden=\"true\"></i>&nbsp;음악감상</span>";
$video_str = "<span class='hobby-result'><i class=\"fa fa-film\" aria-hidden=\"true\"></i>&nbsp;영상물 감상</span>";
$game_str = "<span class='hobby-result'><i class=\"fa fa-gamepad\" aria-hidden=\"true\"></i>&nbsp;게임</span>";
$travel_str = "<span class='hobby-result'><i class=\"fa fa-plane\" aria-hidden=\"true\"></i>&nbsp;여행</span>";
$photo_str = "<span class='hobby-result'><i class=\"fa fa-photo\" aria-hidden=\"true\"></i>&nbsp;사진</span>";
$sports_str = "<span class='hobby-result'><i class=\"fa fa-futbol-o\" aria-hidden=\"true\"></i>&nbsp;스포츠</span>";
$nothing_str = "<i class=\"fa fa-exclamation\" aria-hidden=\"true\"></i>&nbsp;없음";
$bower_location = "..";
$active = "signup";
$title = "정보확인";
include 'header.php';
?>
<div class="container">
<article class="row">
<div class="col-md-1 col-lg-2"></div>
<form class="col-sm-12 col-md-10 col-lg-8" method="post">
<h2 class="header">
<i class="fa fa-check-circle-o" aria-hidden="true"></i>
정보 확인
<small class="text-muted">Information Check</small>
</h2>
<div class="form-group row" id="in-email">
<label class="col-md-4 form-control-label" for="email">
<i class="fa fa-envelope-o" aria-hidden="true"></i>
이메일
</label>
<div class="col-md-8">
<input type="email" class="form-control" name="kmg_email" id="email" value="<?php echo $kmg_email ?>"
readonly>
</div>
</div>
<div class="form-group row" id="in-pw">
<label for="password" class="col-md-4 form-control-label">
<i class="fa fa-key" aria-hidden="true"></i>
비밀번호
</label>
<div class="col-md-8">
<input type="text" class="form-control" name="kmg_pw" id="password" value="<?php echo $kmg_pw ?>" readonly>
</div>
</div>
<div class="form-group row" id="in-pwcheck">
<label for="password-check" class="col-md-4 form-control-label">
<i class="fa fa-key" aria-hidden="true"></i>
비밀번호 확인
</label>
<div class="col-md-8">
<input type="text" class="form-control" name="kmg_pwcheck" id="password-check"
value="<?php echo $kmg_pwcheck ?>" readonly>
</div>
</div>
<div class="form-group row" id="in-name">
<label for="name" class="col-md-4 form-control-label">
<i class="fa fa-user" aria-hidden="true"></i>
이름
</label>
<div class="col-md-8">
<input type="text" class="form-control" name="kmg_name" id="name" value="<?php echo $kmg_name ?>" readonly>
</div>
</div>
<div class="form-group row" id="in-phone">
<label for="phone1" class="col-md-4 form-control-label">
<i class="fa fa-phone" aria-hidden="true"></i>
휴대폰 번호
</label>
<div class="col-md-8 row input-phone">
<div class="col-xs-3">
<input type="tel" class="form-control" id="phone1" name="kmg_phone1" maxlength="3"
value="<?php echo $kmg_phone1 ?>" readonly>
</div>
<p class="col-xs-1 form-control-label">
&minus;
</p>
<div class="col-xs-3">
<input type="tel" class="form-control" id="phone2" name="kmg_phone2" maxlength="4"
value="<?php echo $kmg_phone2 ?>" readonly>
</div>
<p class="col-xs-1 form-control-label">
&minus;
</p>
<div class="col-xs-3">
<input type="tel" class="form-control" id="phone3" name="kmg_phone3" maxlength="4"
value="<?php echo $kmg_phone3 ?>" readonly>
</div>
</div>
</div>
<div class="form-group row" id="in-birth">
<label class="col-md-4 form-control-label">
<i class="fa fa-birthday-cake" aria-hidden="true"></i>
생년월일
</label>
<div class="fix-margin col-md-8">
<div class="row">
<select class="c-select" name="kmg_birth_year" id="birth-year" disabled>
<option><?php echo $kmg_birth_year ?>년</option>
</select>
<select class="c-select" name="kmg_birth_month" id="birth-month" disabled>
<option><?php echo $kmg_birth_month ?>월</option>
</select>
<select class="c-select" name="kmg_birth_day" id="birth-day" disabled>
<option><?php echo $kmg_birth_day ?>일</option>
</select>
</div>
</div>
</div>
<div class="form-group row" id="in-gender">
<label class="col-md-4 form-control-label">
<i class="fa fa-venus-mars" aria-hidden="true"></i>
성별
</label>
<div class="col-md-8">
<p class="form-control-static">
<?php echo $kmg_gender == "male" ? $male_str : ($kmg_gender == "female" ? $female_str : $nothing_str) ?>
</p>
</div>
</div>
<div class="form-group row" id="in-hobby">
<label class="col-md-4 form-control-label">
<i class="fa fa-bicycle" aria-hidden="true"></i>
취미
</label>
<div class="col-md-8">
<p class="form-control-static">
<?php
$hobby_array = array();
if ($kmg_music == "on")
$hobby_array[] = $music_str;
if ($kmg_video == "on")
$hobby_array[] = $video_str;
if ($kmg_photo == "on")
$hobby_array[] = $photo_str;
if ($kmg_sports == "on")
$hobby_array[] = $sports_str;
if ($kmg_book == "on")
$hobby_array[] = $book_str;
if ($kmg_game == "on")
$hobby_array[] = $game_str;
if ($kmg_travel == "on")
$hobby_array[] = $travel_str;
$count = 0;
foreach ($hobby_array as $repeat) {
echo $repeat;
$count++;
}
if ($count == 0)
echo "<span class='hobby-result'>" . $nothing_str . "</span>";
?>
</p>
</div>
</div>
<div class="form-group row" id="in-introduce">
<label for="introduce" class="col-md-4 form-control-label">
<i class="fa fa-terminal" aria-hidden="true"></i>
자기소개
</label>
<div class="col-md-8">
<textarea rows="4" class="form-control" name="kmg_introduce" id="introduce"
readonly><?php echo htmlspecialchars($kmg_introduce) ?></textarea>
</div>
</div>
<div class="row">
<div class="col-xs-5">
<a href="join.html" class="btn btn-warning-outline btn-block" role="button">
<i class="fa fa-trash" aria-hidden="true"></i>
재입력
</a>
</div>
<div class="col-xs-7">
<a href="/~y201507044/" class="btn btn-success btn-block" role="button">
<i class="fa fa-check" aria-hidden="true"></i>
완료
</a>
</div>
</div>
</form>
</article>
</div>
<?php include 'footer.html' ?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment