PHP 마법 학교 심화 10강: 우리만의 비밀 기지! ‘로그인과 로그아웃’ 마법 완성

안녕하세요! 가족과 함께하는 스마트 라이프입니다. 지난 시간에는 나를 기억해주는 ‘세션’ 마법을 배웠죠? 오늘은 그 세션을 활용해서 진짜 마법 학교 학생들만 들어올 수 있는 비밀 통로, 바로 ‘로그인과 로그아웃’ 기능을 완성해 보겠습니다. 이제 아무나 들어올 수 없는 우리만의 아지트를 만들 수 있어요!

PHP 마법 학교 심화 10강: 우리만의 비밀 기지! '로그인과 로그아웃' 마법 완성

1. 비밀번호 확인: 통행증 검사하기

로그인은 창고(DB)에 저장된 마법사 정보와 내가 입력한 정보가 똑같은지 확인하는 과정이에요. 이름과 암호가 맞다면, 지난번에 배운 세션 주머니에 ‘로그인 성공’이라는 증표를 넣어줍니다.

<?php
  session_start();
  include "db_connect.php";

  $user_id = $_POST['user_id'];
  $user_pw = $_POST['user_pw'];

  // 창고에서 이 마법사가 있는지 찾아봐요!
  $sql = "SELECT * FROM Wizards WHERE id='$user_id' AND pw='$user_pw'";
  $result = mysqli_query($conn, $sql);

  if (mysqli_num_rows($result) > 0) {
      // 정보가 맞다면 세션에 저장!
      $_SESSION['is_login'] = true;
      $_SESSION['name'] = $user_id;
      echo "로그인 성공! 비밀 기지에 입장합니다.";
  } else {
      echo "암호가 틀렸거나 없는 마법사예요!";
  }
?>

2. 아지트 지키기: 로그인한 사람만 보여주기

이제 세션 주머니를 확인해서 로그인한 마법사에게만 비밀 메시지를 보여줄 거예요. 만약 주머니가 비어있다면 “저리 가!”라고 쫓아내야겠죠?

<?php
  session_start();
  
  if (isset($_SESSION['is_login']) && $_SESSION['is_login'] == true) {
      echo "어서오세요, " . $_SESSION['name'] . " 마법사님! 오늘의 비밀 주문은 '초코파이'입니다.";
  } else {
      echo "<script>alert('로그인이 필요한 구역입니다!'); location.href='login.html';</script>";
  }
?>

3. 안녕히 가세요: 세션 지우기(로그아웃)

아지트를 나갈 때는 세션 주머니를 깨끗이 비워야 해요. 그래야 다음 사람이 내 이름으로 들어오지 못하니까요. 이때 사용하는 주문이 session_destroy()입니다.

PHP 마법 학교 심화 10강: 우리만의 비밀 기지! '로그인과 로그아웃' 마법 완성

4. 아이들과 함께하는 ‘암호 보안’ 놀이

로그인 기능을 만들면서 아이와 함께 ‘안전한 암호 만들기’ 게임을 해보세요. “1234 같은 쉬운 암호는 나쁜 마법사가 금방 맞출 수 있어!”라고 알려주며, 숫자와 영어를 섞은 우리 가족만의 강력한 암호를 만들어보는 거예요. 보안의 중요성을 직접 코드로 구현해보는 경험은 아이에게 큰 책임감을 심어줍니다.

마치며: 진정한 웹 서비스의 주인공이 되다!

로그인과 로그아웃까지 마스터했다면, 여러분은 이제 회원제로 운영되는 멋진 커뮤니티나 게임 사이트를 만들 준비가 모두 끝났습니다! 정보를 저장하고, 꺼내고, 수정하고, 지우고, 이제는 보호하는 법까지 배웠으니까요. 다음 시간에는 심화 과정의 마지막 프로젝트, ‘마법 학교 학생 관리 시스템’을 총정리하며 대단원의 막을 내려볼게요!