부트스트랩 로그인 폼은 https://bootsnipp.com/tags/login 에 많은 예제가 있다.
Preview, HTML, CSS 코드가 있으므로 원하는 걸 선택하거나 수정해서 사용하면 된다.
input-group 클래스를 사용해서 아이콘 모양이 나오도록 하려면
<link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
한줄을 header에 추가해준다.
<div class="form-group "> <label for="password">비밀번호</label> <input type="password" id="password" value='' placeholder="비밀번호를 입력하세요" class="form-control" /> </div>
<div class="input-group "> <span class="input-group-addon"><i class="fa fa-lock"></i></span> <input type="password" id="password" value='' placeholder="비밀번호를 입력하세요" class="form-control" /> </div>
style.css 파일 추가사항
.input-group { margin-top: 1em; margin-bottom: 1em; }
.login-box { line-height: 2.3em; font-size: 1em; color: #aaa; margin-top: 1em; margin-bottom: 1em; padding-top: 0.5em; padding-bottom: 0.5em; }
로그인 폼 전체 코드
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>로그인</title> <!-- Bootstrap --> <link href="../plugin/bootstrap/css/bootstrap.min.css" rel="stylesheet"> <!-- font awesome --> <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet"> <!-- Custom style --> <link rel="stylesheet" href="../plugin/bootstrap/css/style.css" media="screen" title="no title" charset="utf-8"> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <!-- Include all compiled plugins (below), or include individual files as needed --> <script src="../plugin/bootstrap/js/bootstrap.min.js"></script> <script src="../config/js/login.js"></script> </head> <body> <div class="container"> <div class="row"> <div class="col-sm-3"> <div class="login-box well"> <form accept-charset="UTF-8" role="form" method="post" action=""> <legend>로그인</legend> <div class="input-group"> <span class="input-group-addon"><i class="fa fa-user"></i></span> <input type="text" id="userid" value='' placeholder="E-mail을 입력하세요" class="form-control" /> </div> <div class="input-group"> <span class="input-group-addon"><i class="fa fa-lock"></i></span> <input type="password" id="password" value='' placeholder="비밀번호를 입력하세요" class="form-control" /> </div> <button type="submit" id="login-submit" class="btn btn-default btn-block"/>로그인</button> <span class='text-center'><a href="" class="text-sm">비밀번호 찾기</a></span> <div class="form-group"> <a href="registerForm.php" class="btn btn-default btn-block"> 회원가입</a> </div> </form> </div> </div> </div> </div> </body> </html>
login.js
$(function() { // 로그인 처리 $('#login-submit ').click(function(e) { e.preventDefault(); if ($("#userid").val() == '') { alert('아이디를 입력하세요'); $("#userid").focus(); return false; } if ($("#password").val() == '') { alert('비밀번호를 입력하세요'); $("#password").focus(); return false; } $.ajax({ url : 'loginChk.php', type : 'POST', data : { userid : $('#userid').val(), password : $('#password').val() }, dataType : "json", success : function(response) { if (response.result == 1) { //alert('로그인 성공'); location.replace('../index.php'); // 화면 갱신 //location.reload(); // 화면 갱신 } else if (response.result == -2) { alert('입력된 값이 없습니다'); } else { alert('로그인 실패'); } }, error : function(jqXHR, textStatus, errorThrown) { alert("arjax error : " + textStatus + "\n" + errorThrown); } }); }); });
loginChk.php
<?php extract($_POST); if (isset($_POST)) { require_once '../config/config.php'; $c = new MemberClass(); $user = $c->getUser($userid, $password); if ($user != false) { if (!isset($_SESSION)) { session_start(); } $_SESSION['userID'] = $user['userID']; $_SESSION['admin'] = $user['admin']; echo json_encode(array('result' => '1')); } else { echo json_encode(array('result' => '0')); } } else {// 입력받은 데이터에 문제가 있을 경우 echo json_encode(array('result' => '-2')); } ?>
로그인 처리에 필요한 파일은 모두 위에 열거하였다.
Class 함수에 대한 코드는 http://link2me.tistory.com/1401 에 있다.
테이블 구조는 부트스트랩 회원가입 처리하면서 칼럼 몇개를 더 추가했다.
PDO Class 만든 것과 연계하여 부트스트랩 회원가입과 로그인처리하는 기능을 만들고 있다.
로그인 처리하는 부분을 약간 더 손보고 관련 파일을 첨부한다.
비밀번호 찾기, 회원정보 수정 등은 첨부된 파일에 더 추가해서 직접 작성하면 될 것이다.
첨부파일은 기존에 올려진 첨부파일과 내용이 모두 다르다고 보면 된다.
다음에는 안드로이드 회원가입 처리와 로그인처리 부분을 작성해서 올릴 예정이다.