PHP 26강. 로그인 시스템(Login System)
1. 로그인 시스템이란?
로그인 시스템은 회원의 정보를 확인하고 로그인 상태를 유지하는 기능입니다.
동부산CC에서는 다음과 같은 기능을 구현합니다.
회원 로그인
관리자 로그인
로그아웃
로그인 유지(Session)
2. 로그인 구조
사용자
↓
로그인 화면
↓
PHP
↓
MySQL
↓
회원 확인
↓
Session 생성
↓
로그인 성공
3. member 테이블
CREATE TABLE member (
id INT AUTO_INCREMENT PRIMARY KEY,
userid VARCHAR(50),
password VARCHAR(255),
name VARCHAR(100),
role VARCHAR(20)
);
비밀번호는 암호화하여 저장합니다.
4. 로그인 Form
<form action="login.php" method="post">
<input
type="text"
name="userid"
placeholder="아이디">
<input
type="password"
name="password"
placeholder="비밀번호">
<button>
로그인
</button>
</form>
5. 로그인 처리
$userid = $_POST["userid"];
$password = $_POST["password"];
사용자가 입력한 값을 받습니다.
6. 회원 조회
$sql = "
SELECT *
FROM member
WHERE userid=?
";
$stmt = $pdo->prepare($sql);
$stmt->execute([$userid]);
$member = $stmt->fetch();
아이디로 회원을 조회합니다.
7. 비밀번호 확인
if(
password_verify(
$password,
$member["password"]
)
){
echo "로그인 성공";
}
password_verify()로 암호화된 비밀번호를 확인합니다.
8. Session 생성
session_start();
$_SESSION["userid"] = $member["userid"];
$_SESSION["name"] = $member["name"];
$_SESSION["role"] = $member["role"];
로그인 후 필요한 정보를 Session에 저장합니다.
9. 로그인 성공
echo json_encode([
"success" => true,
"name" => $member["name"]
]);
React에서는 이 JSON을 받아 메인 화면으로 이동합니다.
10. 로그인 실패
echo json_encode([
"success" => false,
"message" => "아이디 또는 비밀번호가 올바르지 않습니다."
]);
사용자에게 안내 메시지를 제공합니다.
11. 로그인 여부 확인
session_start();
if(
!isset($_SESSION["userid"])
){
header("Location: login.php");
exit;
}
로그인하지 않은 사용자는 접근을 제한합니다.
12. 관리자 권한
if(
$_SESSION["role"] == "admin"
){
echo "관리자 페이지";
}
일반 회원과 관리자를 구분합니다.
13. 로그아웃
session_start();
session_destroy();
header("Location: index.php");
Session을 삭제하여 로그아웃합니다.
14. React 로그인
await axios.post(
"/api/login.php",
form
);
React는 Axios를 이용해 로그인 요청을 보냅니다.
15. React 로그인 흐름
로그인 화면
↓
Axios
↓
login.php
↓
MySQL
↓
Session 생성
↓
JSON
↓
React
↓
메인 화면
16. 회원가입
회원가입 시에는
$password = password_hash(
$_POST["password"],
PASSWORD_DEFAULT
);
비밀번호를 암호화하여 저장합니다.
17. 동부산CC 활용
로그인 후
예약하기
마이페이지
예약 내역
관리자 페이지
등을 사용할 수 있습니다.
18. 실습 과제
다음을 구현해 보세요.
로그인
로그아웃
Session 생성
관리자 권한 확인
그리고 로그인 성공 시
커사맨님 환영합니다.
를 출력해 보세요.
19. 실무 팁
✔ 비밀번호는 password_hash()로 저장
✔ 로그인 시 password_verify() 사용
✔ Session에는 필요한 정보만 저장
✔ 관리자 권한은 role로 구분
✔ 로그인 실패 메시지는 구체적인 내부 정보를 노출하지 않기
20. 정리
로그인 시스템은 회원 정보를 확인하고 Session을 생성하여 로그인 상태를 유지하는 기능입니다.
PHP에서는 password_hash()와 password_verify()를 사용하여 비밀번호를 안전하게 처리하며, Session을 이용해 로그인 상태를 관리합니다.
동부산CC 프로젝트에서는 회원과 관리자를 구분하여 예약, 마이페이지, 관리자 페이지 접근 권한을 제어할 수 있습니다.
1. 로그인 시스템이란?
로그인 시스템은 회원의 정보를 확인하고 로그인 상태를 유지하는 기능입니다.
동부산CC에서는 다음과 같은 기능을 구현합니다.
회원 로그인
관리자 로그인
로그아웃
로그인 유지(Session)
2. 로그인 구조
사용자
↓
로그인 화면
↓
PHP
↓
MySQL
↓
회원 확인
↓
Session 생성
↓
로그인 성공
3. member 테이블
CREATE TABLE member (
id INT AUTO_INCREMENT PRIMARY KEY,
userid VARCHAR(50),
password VARCHAR(255),
name VARCHAR(100),
role VARCHAR(20)
);
비밀번호는 암호화하여 저장합니다.
4. 로그인 Form
<form action="login.php" method="post">
<input
type="text"
name="userid"
placeholder="아이디">
<input
type="password"
name="password"
placeholder="비밀번호">
<button>
로그인
</button>
</form>
5. 로그인 처리
$userid = $_POST["userid"];
$password = $_POST["password"];
사용자가 입력한 값을 받습니다.
6. 회원 조회
$sql = "
SELECT *
FROM member
WHERE userid=?
";
$stmt = $pdo->prepare($sql);
$stmt->execute([$userid]);
$member = $stmt->fetch();
아이디로 회원을 조회합니다.
7. 비밀번호 확인
if(
password_verify(
$password,
$member["password"]
)
){
echo "로그인 성공";
}
password_verify()로 암호화된 비밀번호를 확인합니다.
8. Session 생성
session_start();
$_SESSION["userid"] = $member["userid"];
$_SESSION["name"] = $member["name"];
$_SESSION["role"] = $member["role"];
로그인 후 필요한 정보를 Session에 저장합니다.
9. 로그인 성공
echo json_encode([
"success" => true,
"name" => $member["name"]
]);
React에서는 이 JSON을 받아 메인 화면으로 이동합니다.
10. 로그인 실패
echo json_encode([
"success" => false,
"message" => "아이디 또는 비밀번호가 올바르지 않습니다."
]);
사용자에게 안내 메시지를 제공합니다.
11. 로그인 여부 확인
session_start();
if(
!isset($_SESSION["userid"])
){
header("Location: login.php");
exit;
}
로그인하지 않은 사용자는 접근을 제한합니다.
12. 관리자 권한
if(
$_SESSION["role"] == "admin"
){
echo "관리자 페이지";
}
일반 회원과 관리자를 구분합니다.
13. 로그아웃
session_start();
session_destroy();
header("Location: index.php");
Session을 삭제하여 로그아웃합니다.
14. React 로그인
await axios.post(
"/api/login.php",
form
);
React는 Axios를 이용해 로그인 요청을 보냅니다.
15. React 로그인 흐름
로그인 화면
↓
Axios
↓
login.php
↓
MySQL
↓
Session 생성
↓
JSON
↓
React
↓
메인 화면
16. 회원가입
회원가입 시에는
$password = password_hash(
$_POST["password"],
PASSWORD_DEFAULT
);
비밀번호를 암호화하여 저장합니다.
17. 동부산CC 활용
로그인 후
예약하기
마이페이지
예약 내역
관리자 페이지
등을 사용할 수 있습니다.
18. 실습 과제
다음을 구현해 보세요.
로그인
로그아웃
Session 생성
관리자 권한 확인
그리고 로그인 성공 시
커사맨님 환영합니다.
를 출력해 보세요.
19. 실무 팁
✔ 비밀번호는 password_hash()로 저장
✔ 로그인 시 password_verify() 사용
✔ Session에는 필요한 정보만 저장
✔ 관리자 권한은 role로 구분
✔ 로그인 실패 메시지는 구체적인 내부 정보를 노출하지 않기
20. 정리
로그인 시스템은 회원 정보를 확인하고 Session을 생성하여 로그인 상태를 유지하는 기능입니다.
PHP에서는 password_hash()와 password_verify()를 사용하여 비밀번호를 안전하게 처리하며, Session을 이용해 로그인 상태를 관리합니다.
동부산CC 프로젝트에서는 회원과 관리자를 구분하여 예약, 마이페이지, 관리자 페이지 접근 권한을 제어할 수 있습니다.
#PHP 26강. 로그인 시스템(Login System)