-
로그인 DB연동 예제 및 샘플코드PHP 2014. 12. 12. 11:06
1. 전체적인 로직은 아래와 같습니다.
0) DB접속을 위한 파일을 만들어 놓습니다.(config.php)
1) 아이디와 패스워드 입력창과 Submit 버튼을 만듭니다. (login.php HTML 부분)
2) Submit 버튼을 누르면 아이디와 패스워드 값이 DB의 값과 일치하는지 확인합니다.(login.php PHP 부분)
3) Session을 활용해 로그인이 성공적으로 이루어지지 않았을 경우 다른 페이지들을 Lock 합니다. (lock.php)
4)성공적으로 로그인했을 경우 환영인사 페이지를 보여줍니다.(welcom.php)
5) 로그아웃 했을 때 로그인 창으로 다시 돌아가며 세션을 종료합니다.(logout.php)
2. 예제, 샘플코드
File Name ; config.php
<?php
$mysql_hostname = "localhost";
$mysql_user = "db접속아이디";
$mysql_password = "db접속비밀번호";
$mysql_database = "db명";
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("db connect error");
mysql_select_db($mysql_database, $bd) or die("db connect error");
?>
File Name ; login.php
<?php
include("config.php"); //DB연결을 위한 config.php를 로딩합니다.
session_start(); //세션의 시작
if($_SERVER["REQUEST_METHOD"] == "POST"){
$myusername=addslashes($_POST['username']); // addslashes 'or '' 앞에 \를 붙임
$mypassword=addslashes($_POST['password']); // 사유는 찾아보기 바람
$sql="SELECT id FROM ING_Login WHERE username='$myusername' and passcode='$mypassword'";
$result=mysql_query($sql);
//$row=mysql_fetch_array($result);
//$active=$row['active'];
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1) //count가 1이라는 것은 아이디와 패스워드가 일치하는 db가 하나 있음을 의미합니다.
{
//session_register("myusername"); // php 5.2.8 -> php 5.3.8 버전 업데이트 후 사용하지 않음
$_SESSION['login_user']=$myusername;
header("location: welcome.php"); // welcome.php 페이지로 넘깁니다.
}
else
{
$error="Your Login Name or Password is invalid";
}
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="utf-8"> <!--utf-8설정-->
<title>Login Page</title>
</head>
<br>
<br>
<CENTER>아이디와 패스워드를 입력해주세요</b></div>
<form action="" method="post">
<label>아 이 디 :</label><input type="text" name="username" class="box"/><br>
<label>패스워드 :</label><input type="password" name="password" class="box" />
<center><input type="submit" value="로그인"/><br />
</form>
</body>
</html>
File Name ; lock.php
<?php
include('config.php');
session_start();
$user_check=$_SESSION['login_user'];
$ses_sql=mysql_query("select username from ING_Login where username='$user_check' ");
$row=mysql_fetch_array($ses_sql);
$login_session=$row['username'];
if(!isset($login_session))
{
header("Location: login.php");
}
?>
File Name ; welcome.php
<?php
include('lock.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Welcome </title>
</head>
<body>
<h1>로그인을 환영합니다. <?php echo $login_session; ?></h1>
<h2><a href="logout.php">Sign Out</a></h2>
</body>
</html>
File Name ; logout.php
<?php
session_start();
if(session_destroy())
{
header("Location: login.php");
}
?>
3. 최종아웃풋
[출처] [PHP] 로그인 DB연동 예제 및 샘플코드 |작성자 INNERGYAN
'PHP' 카테고리의 다른 글
Json 란? (0) 2014.12.12 DB 배열 만든 후 출력 예제 샘플코드 (0) 2014.12.12 WHILE 절을 사용해서 MYSQL DB내용 출력하기 샘플코드 (0) 2014.12.12 phpredis 예제 (0) 2014.12.12 파일 업로드 (0) 2014.12.12