Today I Learned …

[웹개발] 로그인 5 Cases 본문

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">
프로필사진
berry
FE Developer, loves React & better DX
Comments