Today I Learned …
[웹개발] 로그인 5 Cases 본문
* 개인적인 공부 내용을 기록한 글입니다.
소감
식별/인증 케이스에 따른 로그인 페이지 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">
'Web > APM' 카테고리의 다른 글
[웹개발] 게시글 작성 기능 (0) | 2021.10.26 |
---|---|
[웹개발] 비밀번호 일치 확인 (0) | 2021.10.24 |
[웹개발] 아이디 중복 검사 (3) | 2021.10.23 |
[웹개발] CSS 적용 (1) | 2021.10.15 |
[웹개발] 로그인/로그아웃, 메인 페이지, 회원가입 (0) | 2021.10.15 |
Comments