login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form method="post" action="login.php">
<input type="text" name="id" placeholder="아이디를 입력해 주세요"> <br>
<input type="text" name="pw" placeholder="비밀번호 입력">
<input type="submit" value="확인">
</form>
</body>
</html>
간단한 로그인 폼 만들고
login.php
<?php
include "db.php";
$id = $_POST['id'];
$pw = $_POST['pw'];
// $sql = "SELECT * FROM member WHERE user_id='{$id}' AND passwd='{$pw}'"; // member1' or '1'='1 아이디 창에 이렇게 입력하고 로그인 시 성공이 됨;; 고로 코드 이렇게 짜면 망함
$sql = "SELECT * FROM member WHERE user_id=:user_id AND passwd=:pw";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':user_id', $id);
$stmt->bindParam(':pw', $pw);
$stmt->execute();
$row = $stmt->fetch();
var_dump($row);
주석되어있는 코드와 안되어있는 코드 주석처리를 바꾸고 아이디 창에 member1'or;'1'='1 입력하면 알 것이다
물론 테이블에 member 라는 id를 가진 데이터가 있어야함