프로그래밍 언어/PHP

쿠키로 로그인 처리하기

· 코딩마이데이

실제로 웹 페이지에서 쿠키를 이용하여 로그인 처리를 하는 방법에 대해 알아봅시다. 다음 웹 페이지에서는 화면에 '로그인' 글자를 보여줍니다. 만약 '로그인' 글자를 클릭하면 로그인 처리가 수행되어 '로그아웃' 글자를 출력됩니다.


06/cookie_page.php

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

cookie_page.php의 실행 결과

 

03~06 현재는 userid 쿠키가 설정되지 않는 상태이기 때문에 isset($_COOKIE["userId"])는 False값을 가집니다. 따라서 4행의 문장이 실행되어 위 실행 결과에서와 같이 '로그인' 글자가 화면에 출력됩니다.

 

실행 결과의 화면에서 '로그인' 글자를 클릭해 봅시다. 이 글자를 클릭하면 4행의 링크에 의해 cookie_login.php로 페이지가 이동합니다.

 

다음의 cookie_login.php에서 로그인 상테를 나타내는 userid 쿠키를 설정합니다.

 

06/cookie_login.php

<?php
    // 24*60*60 = 1일, 30일 후 쿠키 만료
    setcookie("userid", "hong123", time() + 24*60*60 * 30); // 03

    echo "<script> // 05
        location.href = 'cookie_page.php';
    </script>";
?>

 

03 setcookie() 함수를 이용하여 userid 쿠키의 값을 'hong123'으로 설정합니다. 이 쿠키는 30일간 유효합니다.

 

05 자바스크립트 location.href를 이용하여 cookie_page.php로 페이지를 이동시킵니다.

 

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

 

이번에는 cookie_page.php의 3행 $_COOKIE["userid"]는 'hong123'의 값을 가지기 때문에 6행의 문장이 수행됩니다. 따라사 다음 실행 결과에서와 같이 '로그아웃' 글자가 화면에 나타납니다.

 

쿠키로 로그아웃 처리하기

cookie_page.php의 실행 결과('userid' 쿠키 설정 후)

 

위 실행 결과에서 '로그아웃' 글자를 클릭하면 cookie_page.php의 6행에 의해 cookie_logout.php 페이지에 이동합니다.

 

06/cookie_logout.php

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

    echo "<script> // 05
        location.href ='cookie_page.php';
    </script>"; // 07
?>

 

03 setcookie() 함수를 이용하여 userid 쿠키를 삭제합니다.

 

05~07 자바스크립트 location.href를 이용하여 cookie_page.php로 페이지를 이동시킵니다.

 

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

cookie_page.php의 실행 결과('userid' 쿠키 삭제 후)

 

위 예제들에서와 같이 쿠키 설정, 쿠키 삭제, 쿠키 값 체크 등을 통하여 웹 페이지에서 로그인 상태인지 판별함으로써 로그인 처리를 할 수 있게 됩니다.

 

'프로그래밍 언어 > PHP' 카테고리의 다른 글

세션 접근하기  (0) 2026.06.15
세션 등록하기  (0) 2026.06.15
쿠키 삭제하기  (0) 2026.06.14
쿠키 접근하기  (0) 2026.06.07
쿠키 설정하기  (0) 2026.06.07