Login logic [2]

DATE : 2023/11/11

다음으로 작성해볼 Login logic [2] :

  • 비밀번호는 hash 처리 하지 않은 상태

  • 이번엔 식별 & 인증을 동시에 수행하자!

  • 사용한 DB & html code는 [1]과 동일하다.

[ Login_logic2.php ]

<?php
    require_once("db_connection.php");

    $user = $_POST['user'];
    $password = $_POST['password'];

    $sql = "SELECT * FROM user WHERE username='$user' AND password='$password'"; // 식별 & 인증
    $res = mysqli_query($conn, $sql);

    if(mysqli_num_rows($res) > 0) {
        echo '<script>alert("Login Success")</script>';
    } else {
        echo '<script>alert("Login Fail")</script>';
    }
?>

인증과 식별을 동시에 수행하기 위해서 사용한 SQL은 다음과 같다.

SELECT * FROM user WHERE username = '$user' AND password = '$password'

[1]과 비교했을 때, where문에 AND로 조건이 하나 더 추가된 걸 볼 수 있다.

우리는 이 AND를 사용하는 간단한 방법으로 인증과 식별을 동시에 처리할 수 있게 된다!

위의 SQL을 실행하면 DB는

(1) username이 $user와 동일한 row를 찾고 (= 식별)

(2) 동시에 그 row의 비밀번호가 $password와 일치하는 경우에만 결과를 반환한다. (= 인증)

따라서 비밀번호가 일치하지 않으면 SQL의 결과로 반환 되지 않기 때문에

결과가 존재하는 지, 존재하지 않는 지의 여부로 로그인 성공 or 실패 여부를 확인할 수 있다.

(실행 결과는 [1]과 동일하므로 따로 첨부하지는 않음)

Last updated