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 " <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>";
?>
로그아웃 버튼을 클릭하면 세션에 저장된 정보를 모두 지우고 로그인 페이지로 돌아간다.
댓글