PHP 마법 학교 3기 6강: 마법의 깃펜을 들자! ‘글쓰기와 데이터베이스 저장 마법’

안녕하세요! 가족과 함께하는 스마트 라이프입니다. 지난 시간에는 보물 창고(DB)에 있는 글들을 꺼내어 목록으로 보여주는 법을 배웠죠? 오늘은 드디어 내 생각을 직접 적어 창고에 영구히 보관하는 ‘글쓰기 마법’을 배워보겠습니다. 이제 우리 학교 마법사들이 자신만의 마법 비법을 공유할 수 있게 될 거예요!

PHP 마법 학교 3기 6강: 마법의 깃펜을 들자! '글쓰기와 데이터베이스 저장 마법'

1. 마법의 원고지 준비: 글쓰기 폼(Form)

글을 쓰려면 먼저 제목과 내용을 적을 수 있는 칸이 필요해요. HTML의 <textarea> 태그를 사용하면 여러 줄의 마법 주문도 넉넉하게 적을 수 있는 커다란 원고지가 만들어진답니다.

2. 글을 창고로 보내는 주문서 (코드)

글쓰기 화면(write.php)과 이를 받아서 실제로 DB에 저장하는 처리 파일(write_ok.php)을 연결해 봅시다.

<!-- write.php: 글쓰기 화면 -->
<!DOCTYPE html>
<html>
<body>
  <h2>✍️ 새로운 마법 주문 기록하기</h2>
  <form action="write_ok.php" method="POST">
    <p>제목: <input type="text" name="title" required></p>
    <p>내용: <br><textarea name="content" rows="5" cols="30" required></textarea></p>
    <button type="submit">주문 저장!</button>
  </form>
</body>
</html>

<?php
// write_ok.php: 저장 처리
session_start();
$conn = mysqli_connect("localhost", "root", "비밀번호", "magic_school");

// 1. 로그인한 마법사 이름 가져오기
$writer = $_SESSION['username'];
// 2. 적어낸 제목과 내용 낚아채기
$title = $_POST['title'];
$content = $_POST['content'];

// 3. 창고에 저장하기 (INSERT 주문)
$sql = "INSERT INTO board (title, content, writer) VALUES ('$title', '$content', '$writer')";

if (mysqli_query($conn, $sql)) {
    echo "<script>alert('성공적으로 기록되었습니다!'); location.href='list.php';</script>";
} else {
    echo "마법 실패: " . mysqli_error($conn);
}
?>

3. 세션(Session)의 힘: “누가 썼는지 알고 있어요!”

이번 코드에서 가장 멋진 점은 작성자를 직접 입력하지 않아도 된다는 거예요! 지난 시간에 배운 세션 마법 덕분에 서버는 이미 누가 로그인했는지 알고 있죠. $_SESSION['username']을 통해 자동으로 작성자 이름을 적어주는 똑똑한 시스템이 완성된 거랍니다.

PHP 마법 학교 3기 6강: 마법의 깃펜을 들자! '글쓰기와 데이터베이스 저장 마법'

4. 아이들과 함께하는 ‘비밀 일기장’ 놀이

아이와 함께 ‘공용 일기장’을 하나 만들어보세요. 누군가 글을 쓰면 마지막에 자기 도장을 찍고 일기장(DB)에 넣는 거예요. “네가 쓴 글이 이 일기장에 영원히 남는 것처럼, 우리가 만든 INSERT 마법도 우리 서버에 네 생각을 영원히 저장해준단다”라고 말해주세요. 내가 쓴 글이 사라지지 않고 저장된다는 개념은 아이들에게 큰 책임감과 성취감을 줍니다.

마치며: 기록하는 마법사의 성장

이제 우리 학교 게시판은 읽기만 하는 곳이 아니라, 누구나 자신의 목소리를 낼 수 있는 살아있는 공간이 되었습니다. 정말 대단해요! 하지만 글을 쓰다 보면 실수로 잘못 적을 때도 있겠죠? 다음 시간에는 이미 쓴 글을 고치거나 지우는 ‘수정과 삭제 마법’에 대해 배워보겠습니다. 다음 시간에 만나요!