[PHP] 쿠키(Cookie)

Jeon·2021년 8월 10일

PHP

목록 보기
6/7

1. 쿠키(Cookie)란?

  • 쿠키란 하이퍼 텍스트의 기록서의 일종으로서 인터넷 사용자가 어떠한 웹사이트를 방문할 경우 그 사이트가 사용하고 있는 서버를 통해 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일을 일컫는다.
  • 일반적으로 쉽게 접할 수 있는 쿠키의 예시로는 로그인 유지 기능이 있다. 쿠키를 생성하고, 그 만료시간(expire)을 길게 설정하여 사용자(클라이언트)가 계속 유효한 쿠키를 갖고 웹에 접속하면 별도의 로그인 과정 없이 바로 웹 이용이 가능하도록 만든다.

2. 쿠키 생성

setcookie() 함수를 활용하여 쿠키를 생성한다.
tile()+시간 인자를 추가하여 expire(만료) 시간을 설정한다. 기본 단위는 second 이다.

<?php
  $a=setcookie("username", $username, time()+60);
  $b=setcookie("password", $password, time()+60); //time() = expire 시간 설정하는 것)

  if ($a && $b){
  	print "쿠키 'username'과 'password' 60초 유효로 생성 완료!<br>";
  }
?>

3. 쿠키 확인(사용)

register_globals(php.ini에서 확인)는 기본 Off로 설정되어 있다.

<?php
    // 클라이언트 로컬에 저장되어있는 쿠키가 유효하므로 불러와서 사용이 가능함.
    $username = $_COOKIE["username"];
    $password = $_COOKIE["password"];
    print "쿠키 'userId' : $username <br>";
    print "쿠키 'username' : $password <br>";
?>

반대로 register_globals가 On인 경우에는 아래처럼 한다.
변수를 따로 선언할 필요가 없다.

예시(로그인 유지 기능)

<!DOCTYPE html>
<html>
<head lang="ko">
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>
    쿠키 테스트를 위한 로그인 폼
  </title>
</head>
<body>
  
  ////////// PHP 사용하는 부분 //////////
  <form action="cookie_setcookie.php" method="post">
    <table border="1">
      <tr>
        <td><input type="text" required placeholder="아이디" name="username"></td>
      </tr>
      <tr>
        <td><input type="password" required placeholder="비밀번호" name="password"></td>
      </tr>
      <tr align="center">
        <td>
          <input type="checkbox" value="yes" name="chkbox">로그인 상태 유지
          <input type="submit" value="로그인">
        </td>
      </tr>
    </table>
  </form>
  ////////// PHP 사용하는 부분 //////////
  
</body>
</html>

<?php
    $username = $_REQUEST["username"];
    $password = $_REQUEST["password"];
    $chkbox = $_REQUEST["chkbox"];

    if ($chkbox == true){
        $a=setcookie("username", $username, time()+60);
        $b=setcookie("password", $password, time()+60); //time() = expire 시간 설정하는 것)

        if ($a && $b){
            print "쿠키 'username'과 'password' 60초 유효로 생성 완료!<br>";
        }
    }else {
        print "로그인이 유지되지 않습니다.";
    }
?>

로그인 화면(로그인 상태 유지 체크박스 활성화)

  • 생성 결과(브라우저에서 확인)
  • cookie_check.php(쿠키 확인 코드)로 확인
profile

0개의 댓글