이전 글
[PHP] 간이 로그인 페이지 만들기 + CSS
html, css, php를 이용하여 간단한 로그인 페이지 작성1. login_page.php LOGIN Not a member? Sign up 사용자에게 아이디와 비밀번호를 입력받아 로그인 성공/실패를 판단하는 코드이다. require_once()함수는 다
yumeo.tistory.com
로그인 페이지에 DB 연결하기
1. login_page.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Lexend+Deca:wght@100..900&display=swap" rel="stylesheet">
<link rel="stylesheet" href="login.css">
<title>LOGIN</title>
</head>
<body>
<form method="POST" action="login_proc.php">
<section>
<ul class="login lexend-deca-300">
<li><h1 class="lexend-deca-600">LOGIN</h1></li>
<li><input type="text" placeholder="Id" name="id" required></li>
<li><input type="password" placeholder="Password" name="password" required></li>
<li><input type="submit" id="login_btn" value="login" name="submit"></li>
<li class="sign">Not a member? <a href="signup_page.php">Sign up</a></li>
</ul>
</section>
</form>
</body>
</html>
login submit 시 login_proc.php로 전달하여 login_porc.php에서 로그인 동작을 처리하도록 하였다.
2. login_proc.php
<?php
require_once('db.php');
if(isset($_POST['submit'])){
$login_res=login($_POST['id'], $_POST['password']);
if($login_res){
header("location:index.php?login_id=". $login_res );
exit;
} else {
header("location:login_page.php");
exit;
}
}
?>
db.php의 login함수에 사용자가 입력한 id와 password를 넘겨 호출한다. 로그인이 성공하면 아이디가 반환되고 그 반환된 아이디를 index.php에 get방식으로 넘긴다. 로그인 실패 시 로그인 페이지로 리다이렉트한다.
3. db.php
<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', '');
define('DB_PASSWORD', '');
define('DB_NAME', 'mn');
$db_conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
if($db_conn){
echo "DB Connect OK";
}else{
echo "DB Connect Fail";
}
function login($userid, $userpass) {
global $db_conn;
$sql = "select * from member where id='$userid' and password='$userpass'";
$result = mysqli_query($db_conn, $sql);
$row = mysqli_fetch_array($result);
if($userid == $row['id'] and $userpass == $row['password']){
return $userid;
} else {
return 0;
}
}
?>
php <-> db 연동 후, 아이디와 패스워드를 받아 로그인 처리를 하는 login 함수를 정의했다. select * from member where id='$userid' and password='$userpass' 문을 이용하여 입력받은 id와 password가 같은 경우 id를 반환한다.
결과
member 테이블에 있는 test01 계정으로 로그인 한 결과, index 페이지의 test01님 안녕하세요! 라는 문구가 표시된다.
'웹 개발' 카테고리의 다른 글
로그인 로직 CASE 4가지 (0) | 2024.05.07 |
---|---|
[PHP] 회원가입 페이지 만들기 (0) | 2024.04.29 |
WAS - DB 연동하고 데이터 가져오기 (php, mysql) (0) | 2024.04.27 |
SQL (Structured Query Language) + 실습해보기 (0) | 2024.04.25 |
Database와 DBMS(장단점, 종류) (0) | 2024.04.25 |