본문 바로가기
언어/PHP

PHP, DB를 이용해서 로그인 구현

by Rudy 2022. 1. 28.

DB에 로그인을 위한 테이블을 추가한다. DBMS는 mariaDB를 이용했다.

CREATE TABLE emp_login(
	emp_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
	emp_pw VARCHAR(10) NOT NULL,
	r_id VARCHAR(65) NOT NULL,

	CONSTRAINT FK_Rinfo_emplogin FOREIGN KEY(r_id) REFERENCES R_INFO(r_id)
);

중간에 컬럼을 더 추가하고 싶어 아래 쿼리문을 이용해 컬럼을 더 추가했다.

ALTER TABLE emp_login
ADD COLUMN emp_name varchar(255) NULL DEFAULT NULL;

 


Login.php

<?php

session_start(); // 세션시작

if($_SESSION['r_id']==null && $_SESSION['emp_pw']==null) { // 로그인 하지 않았다면

?>



<center><br><br><br>

<form name="login_form" action="login_check.php" method="post">
<input type="text" name="r_id" class="" placeholder="id" required/><br><br>
<input type="password" name="emp_pw" class="" placeholder="비밀번호" required/><br><br>
   <input type="submit" name="login" value="Login">
</form>

</center>



<?php

}else{ // 로그인 했다면

   echo "<center><br><br><br>";
   echo $_SESSION['emp_name']."(".$_SESSION['r_id'].")님이 로그인 하였습니다.";
   echo "&nbsp;<a href='logout.php'><input type='button' value='Logout'></a>";
   echo "</center>";
}

?>

session_start() 함수를 이용해서 세션이 시작되고나서 이 사용자가 작성한 아이디와 비밀번호가 DB에 저장되어 있는 것이 맞는지 체크하기 위해 login_check.php 파일로 넘어간다.

Login_check.php

<?php

include "../../db/db_conn.php";

session_start(); // 세션 시작



$store_id = $_POST['r_id']; 
$store_id=trim($store_id);
$epw = $_POST['emp_pw']; 

  
$query = "select * from emp_login where r_id='$store_id' and emp_pw='$epw'";
$sql_result = mysqli_query($__conn, $query);
$row = mysqli_fetch_array($sql_result);


if($store_id==$row['r_id'] && $epw==$row['emp_pw']){ // id와 pw가 맞다면 login

    $_SESSION['r_id']=$row['r_id'];
    $_SESSION['emp_name']=$row['emp_name'];
    echo "<script>location.href='login.php';</script>";
 
 }else{ // id 또는 pw가 다르다면 login 폼으로
 
echo "<script>window.alert('아이디 혹은 비밀번호가 틀립니다. 다시 입력해주세요.');</script>";  
echo "<script>location.href='login.php';</script>";

}

?>

 

 

DB를 연결하는 파일을 include해서 불러오고, POST를 이용해 전달받은 아이디와 비밀번호를 쿼리문을 이용해서 DB에 저장된 아이디와 비밀번호가 맞는지 확인한다. 로그인에 성공하면 $_SESSION을 이용해서 아이디와 비밀번호를 기억하게 되고 로그인 페이지로 돌아간다. 로그인에 실패하면 alert 창으로 비밀번호나 아이디가 틀리다는 메시지를 띄우고 다시 로그인 페이지로 돌아간다. 

 

Logout.php

<?php

session_start(); // 세션

if($_SESSION['r_id']!=null){
   session_destroy();
}

echo "<script>location.href='login.php';</script>";

?>

로그아웃 버튼을 클릭하면 세션에 저장된 정보를 모두 지우고 로그인 페이지로 돌아간다.

 

 

'언어 > PHP' 카테고리의 다른 글

클래스  (0) 2022.02.15

댓글