몽상실현개발주의

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

Language/php

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

migrationArc 2021. 5. 21. 15:22

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

생활코딩 php 강좌

16. 쿠키와 세션

16.3 PHP 에서 세션 사용하기 - 2

  • Session 의 사용
    • 사용자 인증
    • 인증된 사용자에 대한 Login 상태 유지 등

 

// login.html
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
  </head>
  <body>
    <form action="login_process.php" method="POST">
      <p><label>아이디</label><input type="text" name="id" /></p>
      <p><label>비밀번호</label><input type="text" name="pwd" /></p>
      <input type="submit" />
    </form>
  </body>
</html>
  • POST 방식으로 login 정보를 login_process.php 에 전달

 

// login_proecess.php
<?php
session_start();
$id = 'egoing';
$pwd = 'codingeverybody';
if(!empty($_POST['id']) && !empty($_POST['pwd'])){
  if($_POST['id'] == $id && $_POST['pwd'] == $pwd){
    $_SESSION['is_login'] = true;
    $_SESSION['nickname'] = '이고잉';
    header('Location: ./session.php');
    exit;
  }
}
echo '로그인 하지 못했습니다.';
?>

 

session_start();
  • session 시작
if(!empty($_POST['id']) && !empty($_POST['pwd'])){
  if($_POST['id'] == $id && $_POST['pwd'] == $pwd){
    $_SESSION['is_login'] = true;
    $_SESSION['nickname'] = '이고잉';
    header('Location: ./session.php');
    exit;
  }
  • ID 와 Password 검증 후, session 에 정보 저장
    • is_login : login 상태 정보
    • nickname : 유저 정보
  • session.php Page 로 전달 및 이동

 

 

// session.php
<?php
session_start();
if(!isset($_SESSION['is_login'])){
  header('Location: ./login.html');
}
?>

<html>
  <body>
    <?php echo $_SESSION['nickname'];?>님 환영합니다<br />
    <a href="./logout.php">로그아웃</a>    
  </body>
</html>

 

<?php
session_start();
if(!isset($_SESSION['is_login'])){
  header('Location: ./login.html');
}
?>
  • session 시작 후, session 에 저장된 login 상태 정보 확인
    • isset(value) : value 의 존재 여부를 확인, 변수가 존재하면 true
      • login 을 하지 않았다면, is_login 값이 없음
      • login 을 해야지만, true 로 선언 및 초기화
    • empty(value) : value 가 0 또는 null 일때 (변수가 존재하지 않아도) true

 

 

// logout.php
<?php
ini_set("display_errors", "1");
session_start();
session_destroy();
header('Location: ./login.html');
?>
  • session_destroy()
    • logout 시 모든 session Data 삭제
    • 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