Web/APM
[웹개발] 로그인 5 Cases
염베리
2021. 10. 24. 10:36
* 개인적인 공부 내용을 기록한 글입니다.
소감
식별/인증 케이스에 따른 로그인 페이지 5개를 개발했다.
로그인 5 Cases
Case 1. 식별/인증 동시
기존 페이지와 동일하다.
login_id와 login_pw를 동시에 만족하는 행이 '존재하면' 로그인에 성공한다.
<?php
$user_id = $_POST['user_id'];
$user_pw = $_POST['user_pw'];
$conn = mysqli_connect('localhost', 'choco', '7173', 'study_login');
$sql = "SELECT * FROM member where login_id='$user_id' and login_pw='$user_pw'";
$res = mysqli_fetch_array(mysqli_query($conn,$sql));
if($res){
session_start();
$_SESSION['user_id'] = $res['login_id'];
$_SESSION['user_name'] = $res['name'];
echo "<script>alert('로그인에 성공했습니다!');";
echo "window.location.replace('main.php');</script>";
exit;
}
else{
echo "<script>alert('아이디 혹은 비밀번호가 잘못되었습니다.');";
echo "window.location.replace('login.php');</script>";
}
?>
<meta http-equiv="refresh" content="0;url=main.php">
Case 2. 식별/인증 분리
login_pw와 user_pw가 '일치하면' 로그인에 성공한다.
<?php
$user_id = $_POST['user_id'];
$user_pw = $_POST['user_pw'];
$conn= mysqli_connect('localhost', 'choco', '7173', 'study_login');
$sql = "SELECT * FROM member where login_id='$user_id'";
$res = mysqli_fetch_array(mysqli_query($conn,$sql));
if($res['login_pw'] == $user_pw){
session_start();
$_SESSION['user_id'] = $res['login_id'];
$_SESSION['user_name'] = $res['name'];
echo "<script>alert('로그인에 성공했습니다!');";
echo "window.location.replace('main.php');</script>";
exit;
}
else{
echo "<script>alert('아이디 혹은 비밀번호가 잘못되었습니다.');";
echo "window.location.replace('login.php');</script>";
}
?>
<meta http-equiv="refresh" content="0;url=main.php">
Case 3. 식별/인증 동시 with hash
Case 1 + hash
<?php
$user_id = $_POST['user_id'];
$user_pw = $_POST['user_pw'];
$conn = mysqli_connect('localhost', 'choco', '7173', 'study_login');
$sql = "SELECT * FROM member where login_id='$user_id' and login_pw=md5('$user_pw')";
$res = mysqli_fetch_array(mysqli_query($conn,$sql));
if($res){
session_start();
$_SESSION['user_id'] = $res['login_id'];
$_SESSION['user_name'] = $res['name'];
echo "<script>alert('로그인에 성공했습니다!');";
echo "window.location.replace('main.php');</script>";
exit;
}
else{
echo "<script>alert('아이디 혹은 비밀번호가 잘못되었습니다.');";
echo "window.location.replace('login.php');</script>";
}
?>
<meta http-equiv="refresh" content="0;url=main.php">
Case 4. 식별/인증 분리 with hash
Case 2 + hash
<?php
$user_id = $_POST['user_id'];
$user_pw = $_POST['user_pw'];
$conn= mysqli_connect('localhost', 'choco', '7173', 'study_login');
$sql = "SELECT * FROM member where login_id='$user_id'";
$res = mysqli_fetch_array(mysqli_query($conn,$sql));
if($res['login_pw'] == md5($user_pw)){
session_start();
$_SESSION['user_id'] = $res['login_id'];
$_SESSION['user_name'] = $res['name'];
echo "<script>alert('로그인에 성공했습니다!');";
echo "window.location.replace('main.php');</script>";
exit;
}
else{
echo "<script>alert('아이디 혹은 비밀번호가 잘못되었습니다.');";
echo "window.location.replace('login.php');</script>";
}
?>
<meta http-equiv="refresh" content="0;url=main.php">
Case 5. 식별/인증 동시 with 개행
Case 1 + 개행
<?php
$user_id = $_POST['user_id'];
$user_pw = $_POST['user_pw'];
$conn = mysqli_connect('localhost', 'choco', '7173', 'study_login');
$sql = "SELECT * FROM member where login_id='$user_id' and
login_pw='$user_pw'";
$res = mysqli_fetch_array(mysqli_query($conn,$sql));
if($res){
session_start();
$_SESSION['user_id'] = $res['login_id'];
$_SESSION['user_name'] = $res['name'];
echo "<script>alert('로그인에 성공했습니다!');";
echo "window.location.replace('main.php');</script>";
exit;
}
else{
echo "<script>alert('아이디 혹은 비밀번호가 잘못되었습니다.');";
echo "window.location.replace('login.php');</script>";
}
?>
<meta http-equiv="refresh" content="0;url=main.php">