몽상실현개발주의

[생활코딩] 16.2 PHP 에서 세션 사용하기 - 1 본문

Language/php

[생활코딩] 16.2 PHP 에서 세션 사용하기 - 1

migrationArc 2021. 5. 21. 15:17

[생활코딩] 16.2 PHP 에서 세션 사용하기 - 1

생활코딩 php 강좌

16. 쿠키와 세션

16.2 PHP 에서 세션 사용하기 - 1

  • Cookie 와 Session 의 차이
    • Cookie 와 Session 은 사용자의 상태를 유지 시킨다는 것은 같음
    • Cookie 는 모든 데이터를 Browser 에 Cookie 의 형태로 저장
      • 접근이 쉬워, 정보가 유출될 위험이 있음
    • Session 은 현재 사용자를 구분하기 위한 식별자만 Browser 에 저장, 실질 데이터는 Server 에 File 이나DB 로 저장
      • Server 에 저장된 Data 는 접근이 어려움
  • Session
    • SID(session ID) 를 식별자로 서버에 데이터를 저장
    • SID 로는 쿠키나 도메인 파라미터를 사용
    • session_start(); 로 시작, 스크립트의 최상당에 위치해야 함
    • $_SESSION
    • 데이터는 서버 내에 파일이나 DB에 저장
    • 주로 사용자 인증에서 사용함

 

// session_basic.php
<?php
session_save_path('./session');
session_start();
$_SESSION['title'] = '생활코딩';
?>
  • session_save_path()
    • session 이 저장 될 path 설정
  • session_start()
    • session 을 사용하는 경우, logic 의 최상단에 작성
      • session 에 관련된 설정함수 제외
    • seesion 에 대한 것은 header 로 전달 됨으로, 최상단이 아니면 Protocol 위반

 

 

  • browser 에서 PHPSSESSID cookie 가 생성된 것을 확인
  • session_basic.php 페이지의 접속 결과로, session 폴더 안에 "sess_*" 파일이 생성 된것을 확인
    • 저장될 경로는 session_save_path('./session') 로 지정

 

  • session_start(); 함수가 호출 될 때마다, session 이 발급
    • browser 에 SID cookie 가 없으면, SID 값을 만들어서 Cookie 형태로 browser 에 저장
    • Cookie 의 SID 값과 일치하는 "SESS_~SID~" 파일을 서버에 생성
    • SESS 파일 안에는 $_SESSION 받아온 값을 저장

 

// session_basic2.php
<?php
ini_set('display_errors', '1');
session_save_path('./session');
session_start();
echo $_SESSION['title'];
echo "<br/>";
echo file_get_contents('./session/sess_'.session_id());
?>
  
// 생활코딩
// title|s:12:"생활코딩";
  • session_basic.php 에서 session 에 저장한 title 값이 출력되는 것을 확인
    • 다른 Page 에서도 같은 사용자일 경우 session 이 유지 됨

 

 

  • SID 를 Cookie 에 저장 할 수 없을 때, php 의 경우 url에 인자로 SID 를 넣어 사용자의 상태를 유지 할 수 있음
    • ~/url?PHPSESSID=*
    • Page 를 이동 할 때마다, PHPSESSID 를 넘겨주는 방식으로 Session 이용 가능

 

 

 


이 글의 모든 사진과 내용의 출처는 생활코딩에 있음을 알려드립니다.

http://www.inflearn.com/course/%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A9-php-%EA%B0%95%EC%A2%8C/lecture/230?tab=note

 

생활코딩 - PHP 기본 A 부터 Z 까지 - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com

 

Comments