고급 PHP 프로그래밍 – 세션과 쿠키 관리 – 1 – 세션 변수 설정과 조회

고급 PHP 프로그래밍 - 세션과 쿠키 관리 - 1 - 세션 변수 설정과 조회
고급 PHP 프로그래밍 – 세션과 쿠키 관리 – 1 – 세션 변수 설정과 조회

고급 PHP 프로그래밍 – 세션과 쿠키 관리 – 세션 변수 설정과 조회

안녕하세요~ 😊
이번 시간에는 지난 시간에 배운 **세션(Session)**의 실전적인 사용 방법 중
가장 핵심인 세션 변수의 설정과 조회 방법에 대해 자세히 알아보겠습니다!

세션 변수는 로그인 상태 유지, 사용자 정보 저장, 장바구니 기능 등 웹사이트의 핵심 기능을 구현할 때 반드시 필요한 기능이에요.
이제 여러분도 세션을 자유자재로 다룰 수 있도록 함께 배워볼까요?


세션 변수란 무엇인가요?

세션이란 서버가 특정 사용자와 연결된 정보를 임시로 저장하는 공간이에요.
이 공간에 값을 저장할 수 있는데, 그 저장된 값들을 우리는 세션 변수라고 부릅니다.

비유하자면, 세션은 사용자의 전용 사물함이고, 세션 변수는 그 안에 넣어둔 메모지라고 보시면 돼요! 😊


1. 세션 시작은 session_start()

모든 세션 작업 전에 반드시 이 함수를 호출해야 합니다.
HTML보다 먼저, 가장 위에 위치해야 해요!

<?php
session_start();
?>

2. 세션 변수 설정하기

세션 변수는 $ _SESSION이라는 전역 배열에 값을 할당하면 됩니다.

✅ 예제: 사용자 정보 저장

session_start();

$_SESSION["user_id"] = 1001;
$_SESSION["username"] = "hongildong";
$_SESSION["role"] = "admin";

echo "세션에 사용자 정보가 저장되었습니다.";

→ 이처럼 $_SESSION["키"] = 값 형태로 자유롭게 저장할 수 있어요.


3. 세션 변수 조회하기

✅ 예제: 저장된 값 출력하기

session_start();

echo "아이디: " . $_SESSION["user_id"] . "<br>";
echo "이름: " . $_SESSION["username"] . "<br>";
echo "권한: " . $_SESSION["role"] . "<br>";

→ 변수처럼 바로 꺼내쓸 수 있어요.


4. 세션 변수 존재 여부 확인

✅ 예제: 로그인 여부 체크

session_start();

if (isset($_SESSION["username"])) {
    echo "환영합니다, " . $_SESSION["username"] . "님!";
} else {
    echo "로그인이 필요합니다.";
}

isset()을 꼭 사용해서 존재 여부 확인 후 사용하는 습관을 들이세요!
존재하지 않는 키를 바로 출력하면 경고가 발생할 수 있어요.


5. 세션 변수 수정하기

이미 저장된 세션 변수는 덮어쓰기로 수정할 수 있어요.

$_SESSION["role"] = "user"; // admin → user로 변경

→ 변수처럼 사용하되, 변경은 자유롭게 가능해요!


6. 세션 변수 삭제하기

✅ 특정 변수만 삭제

unset($_SESSION["username"]);

username만 제거하고 다른 값은 그대로 유지돼요.


✅ 모든 세션 변수 초기화

session_unset(); // 세션 변수만 초기화

✅ 세션 자체 파괴 (로그아웃에 사용)

session_destroy(); // 전체 세션 파괴

→ 로그아웃 시에는 위의 두 함수를 함께 사용하면 안전합니다.

session_unset();
session_destroy();

7. 배열 형태로 저장하기

세션 변수는 단순 값뿐 아니라 배열, 객체도 저장 가능해요!

✅ 예제: 배열 저장

$_SESSION["user"] = [
    "id" => 101,
    "name" => "이몽룡",
    "email" => "lee@example.com"
];
echo $_SESSION["user"]["name"]; // 출력: 이몽룡

8. 세션 ID 확인 및 변경

echo session_id(); // 현재 세션 ID 출력

로그인 시 세션을 재생성해서 보안을 강화할 수도 있어요.

session_regenerate_id(true);

세션 탈취 공격(Session Fixation)을 방지할 수 있어요!


9. 실전 예제: 로그인 후 사용자 정보 유지

// login.php
session_start();
$_SESSION["username"] = "홍길동";
$_SESSION["level"] = 5;
echo "로그인 완료!";
// dashboard.php
session_start();

if (isset($_SESSION["username"])) {
    echo $_SESSION["username"] . "님, 등급: " . $_SESSION["level"];
} else {
    echo "접근 권한이 없습니다.";
}

10. 세션 변수 설정 시 주의사항 정리

항목 설명
session_start() 위치 HTML보다 위에! (출력보다 먼저!)
키 존재 확인 항상 isset()으로 검사
값 저장 방식 $_SESSION["key"] = value 형태
보안 데이터는 세션에 저장 쿠키가 아닌 세션에 저장하세요
배열도 저장 가능 사용자 정보 묶어서 저장할 때 유용
로그아웃 처리 session_unset() + session_destroy() 함께 사용

마무리하며 😊

세션 변수는 웹 서비스에서 사용자 상태를 유지하는 데 필수적인 도구입니다.
특히 로그인, 장바구니, 마이페이지 등 거의 모든 주요 기능이 세션 변수의 설정과 조회를 통해 이루어져요!

한 번 저장하면 페이지를 옮겨 다녀도 유지되는 정보,
그게 바로 세션 변수의 가장 큰 장점이랍니다.

이제 여러분도 세션 변수로 사용자 정보를 자유롭게 다룰 수 있으시죠?
다음 시간에는 세션의 유효 시간 설정과 보안 설정에 대해 더 깊이 들어가 볼게요!

오늘도 멋진 웹 개발자의 길, 함께 가고 있어요~ 💻🌟😊

답글 남기기