[Normaltic's 취업반 과제] 로그인 DB 연동
2024. 4. 26. 11:12ㆍ정보보안 및 해킹/Normaltic's 취업반 과제
index.php - Login 상태가 아니면 바로 login.php로 redirect
<?php
require_once ('connect_db.php');
if ($_GET['login_id'] == "") {
header("location: login.php");
exit;
}
?>
[생략]
<?php
$user_id = $_GET['login_id'];
?>
<h1> <?php echo $user_id?>님 환영합니다</h1>
[생략]
login.php - connect_db.php와 login_func.php를 include 후, 로그인 시도한 id와 비밀번호가 맞는지 체크
<?php
require_once ('login_func.php');
function login_check()
{
$login_res = try_check_login($_POST['id'], $_POST['pass']);
echo $login_res;
if ($login_res) {
header("location: index.php?login_id=" . $login_res);
exit;
} else {
echo "<script>alert('아이디 혹은 비밀번호가 틀렸습니다.');
location.href='index.php'
</script>";
exit;
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Rame's Website Login</title>
<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=Noto+Sans+KR:wght@100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap"
rel="stylesheet">
<link rel="stylesheet" href="style.css" />
<link rel="stylesheet" href="font.css" />
</head>
<body class="header">
<div class="info">
<form action="" method="POST">
<h1 class="title-text ">Sign In</h1>
<h3 class="login-text">LOGIN</h3>
<label for="id"> ID : </label><br>
<input type="text" name="id" placeholder="User ID" /><br>
<label for="pass"> PASSWORD : </label><br>
<input type="password" name="pass" placeholder="User Password" /><br><br>
<button class="submit-button" name="submit" value="Login">Sign in </button>
<?php
if (isset($_POST['submit'])) {
login_check();
}
?>
</form>
</div>
</body>
</html>
connect_db.php - DB와 연결 및 로그인 시도한 id와 비밀번호를 가지고 DB와 비교
<?php
define("DB_SERVER", [DB_SERVER]);
define("DB_USERNAME", [DB_USERNAME]);
define("DB_PASSWORD", [DB_PASSWORD]);
define("DB_NAME", [DB_NAME]);
function connect_db()
{
$db_conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
return $db_conn;
}
function find_name_use_sql($username, $userpass)
{
$table_name = "rame_table";
$sql_query = "select * from $table_name where name='$username' and password='$userpass'";
$sql_res = mysqli_query(connect_db(), $sql_query);
return $sql_res;
}
?>
login_func.php - 로그인 성공 시 id를 return
<?php
require_once ('connect_db.php');
function try_check_login($username, $userpass)
{
$sql_row = mysqli_fetch_array(find_name_use_sql($username, $userpass));
$db_id = $sql_row['name'];
$db_pass = $sql_row['password'];
if ($username == $db_id && $userpass == $db_pass) {
return $username;
} else {
echo "LOGIN FAILED <br>";
}
}
?>
'정보보안 및 해킹 > Normaltic's 취업반 과제' 카테고리의 다른 글
[Normaltic's 취업반 과제] 회원가입 시 ID 중복 확인 (0) | 2024.04.29 |
---|---|
[Normaltic's 취업반 과제] My Page (0) | 2024.04.28 |
[Normaltic's 취업반 과제] 게시판 (0) | 2024.04.27 |
[Normaltic's 취업반 과제] 회원가입 (0) | 2024.04.26 |
[Normaltic's 취업반 과제] Login Page (0) | 2024.04.24 |