도유니의 블로그
article thumbnail

쿠키(Cookie)

쿠키(Cookie)는 인터넷 사용자가 웹 사이트를 접속할 때 서버에서 보내주는 작은 데이터를 의미한다. 이 쿠키는 웹 피어지에서 로그인, 장바구니, 배너 광고 등의 기능을 구현하는 데 주로 사용된다.

 

로그인의 예를 들면 사용자가 브라우저를 통해 웹 페이지에 로그인하면 서버에서는 클라이언트에 엡 페이지와 쿠기(예:사용자 아이디를)를 전송해 주낟 이 쿠키 정보는 사용자 컴퓨터 폴더에 저장된다. 만약 사용자가 다른 페이지에 접속하면 사용자 측의 프로그램이 컴퓨터 폴더에 해당 쿠키가 있는 지를 체크하여 로그인 상태를 알 수 있다.

 

 

쿠키는 사용자의 컴퓨터에 텍스트 파일로 저장되며 다음과 같은 목적으로 사용될 수 있다.

  • 웹 사이트의 어떠한 페이지에서도 로그인 상태를 파악한다.
  • 인터넷 쇼핑몰에서 구매하고자 하는 물품을 장바구니에 담아 둔다.
  • 제 3자가 웹 피이지에 광고 배너를 표시한다. 

 

쿠키 설정하기

<?php
    // 24*60*60 = 1일, 30일 후 쿠키 만료
    setcookie("username", "홍길동", time() + 24*60*60 * 30 );
   
    echo "쿠키 설정 완료!";
?>

setcookie() 함수를 이용하여 쿠키 username에 '홍길동' 값을 설정

쿠키는 30일 이후 만료된다. 여기서 time()은 현재 시간의 타임스탬프 값을 반환 한다.

 

 

setcookie()함수의 사용 형식

setcooke(string name, string, value, int expire)

---> 반환 값 : 쿠키 설정이 성공하면 Ture를 반환하고, 실패 시 False를 반환 한다.

 

매개변수 설명
name 쿠키명을 의미한다.
value 쿠키명에 설정되는 쿠키 값을 의미한다.
expire 쿠키가 만료되는 일시를 의미한다. time() + 24*60*60*30은 30일 간 쿠키를 유효하게 한다.

 

 

 

 

쿠키 접근하기

<?php
    if(isset($_COOKIE["username"])){
        echo $_COOKIE["username"]."님 환영합니다.";
    }
    else {
        echo "username 쿠키가 존재하지 않습니다.";
    }
?>

 

 

<?php
    if(isset($_COOKIE["username"])){  // if문 시작 isset()함수는 변수 값이 존재하는 지를 체크하는데 사용
//          ------------------------->> 쿠키값을 의미 '홍길동' 의 값을 가진다.
        echo $_COOKIE["username"]."님 환영합니다.";
    }        //------------------- 홍길동님 환영합니다. 출력
    else {
        echo "username 쿠키가 존재하지 않습니다."; // 쿠키 값이 없을시 출력
    }
?>

isset() 함수는 변수 값이 존재하는 지를 체크하는 데 사용된다. 변수값이 설정되어 있으면 True, 그렇지 않으면 False 값을 반환 한다.

 

 

 

쿠키 삭제하기

<?php
    setcookie("username", "", time()-3600);      // 쿠키 삭제

    echo "쿠키 삭제 완료!";
?>

 

setcookie() 함수 사용 시 username 쿠키의 값을 널("")로 설정하면 username 쿠키가 삭제 된다. 쿠키를 삭제할때 만료일은 현재 이전 시간으로 설정한다. time()-3600은 현재시간 1시간 전으로 만료일을 설정한다.

 

 

쿠키를 삭제한 후 다시엑세스를 실행하면 쿠키가 존재 하지 않는 것을 확인 할 수 있다.

 

 

 

 

쿠키로 로그인 처리하기

실제 웹 페이지에서 쿠키를 이용하여 로그인 처리, 다음 웹 페이지에서는 화면서 '로그인' 글자를보여준다. 만약 '로그인' 글자를 클릭하면 로그인 처리가수행되서 '로그아웃' 글자가 출력 된다.

 

<h3>쿠키로 로그인 처리하기</h3>
<?php
    if(!isset($_COOKIE["userid"]))  
        echo "<a href='cookie_login.php'>로그인</a>";
    else
        echo "<a href='cookie_logout.php'>로그아웃</a>";
?>

 

 

 

 

cookie_login.php에서 로그인 상태를나타내는 userid 쿠키를 설정한다.

<?php
    // 24*60*60 = 1일, 30일 후 쿠키 만료
    setcookie("userid", "hong123", time() + 24*60*60 * 30 );
   
    echo "<script>
            location.href = 'cookie_page.php';
        </script>";
?>

setcookie() 함수를 이용하여 userid를 hong123으로 설정 이 쿠키는 30일간 유효하다.

 

자바스크립트 location.href를 이요하여 cookie_page.php로 페이지를 이동 시킨다.

 

정리하면 cookie_login.php파일이 실행되면 3행에 의해 userid 쿠키가 설정되고, 6행에 의해 cookie_page.php로 페이지가 이동 된다.

 

 

 

 

 

 

쿠키로 로그아웃 처리하기

'로그아웃'을 클릭하였을때 cookie_logout.php 페이지로 이동한다.

<?php
    // 쿠키 삭제
    setcookie("userid", "", time() - 3600); // 쿠키 만료
   
    echo "<script>
            location.href = 'cookie_page.php';  
        </script>"; // 페이지 이동.
?>

 

 

userid 쿠키가 삭제되었기 때문에 cookie_page.php의 $_COOKIE["userid"]는 널("") 값을 가지기 때문에 다음 그림에서와 같이 '로그인' 글자가 화면에 출력된다.

 

 

profile

도유니의 블로그

@Dokker

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그