
고급 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() 함께 사용 |
마무리하며 😊
세션 변수는 웹 서비스에서 사용자 상태를 유지하는 데 필수적인 도구입니다.
특히 로그인, 장바구니, 마이페이지 등 거의 모든 주요 기능이 세션 변수의 설정과 조회를 통해 이루어져요!
한 번 저장하면 페이지를 옮겨 다녀도 유지되는 정보,
그게 바로 세션 변수의 가장 큰 장점이랍니다.
이제 여러분도 세션 변수로 사용자 정보를 자유롭게 다룰 수 있으시죠?
다음 시간에는 세션의 유효 시간 설정과 보안 설정에 대해 더 깊이 들어가 볼게요!
오늘도 멋진 웹 개발자의 길, 함께 가고 있어요~ 💻🌟😊