반응형
PHP에서 cookie를 사용하는 방법을 알아봅니다. 자꾸 까먹어서..😴
기본 명령어
setcookie('cookie_name', 'value', 'expire', 'path', 'domain', 'secure', 'httponly');
- cookie_name (string) : 쿠키 이름(변수라고 생각하면 쉬울 것 같네요.)
- value (string) : cookie_name에 들어갈 값(cookie_name이 변수라고 생각하고 여기에 들어가는 값)
- expire (int) : 쿠키가 유지 되는 시간
- path (string) : 쿠키를 적용 할 경로
- domain (string) : 쿠키 사용을 허용할 도메인
- secure (bool) : https에서만 사용할 수 있도록 설정
- httponly (bool) : 스크립트에서 쿠키 정보를 못 보게 하기
기본 설정
// ① 하루만 사용
$value = 'tistory';
setcookie('playon', $value, time() + 86400, '/');
// ② https 에서만 사용 할 수 있게
$value = 'tistory';
setcookie('playon', $value, time() + 86400, '/', '', true);
// ③ 스크립트에서 안보이고 http 에서만 사용 할 수 있게
$value = 'tistory';
setcookie('playon', $value, time() + 86400, '/', '', true, true);
① : 일반적으로 사용 할 수 있는 설정
② : https 에서만 사용할 수 있게 설정
③ : httponly 로 사용하게 설정
③ 으로 설정하면 자바스크립트에서 쿠키를 볼 수 있는 document.cookie를 사용해도 값이 나오지 않습니다.
XSS 공격으로부터 나름 방어가 가능하지요.
근데 브라우저 개발자도구 > 애플리케이션에서는 나와서 왜 나오는지 한참 구글링 했지만 거긴 그냥 나오나 봐요
보안적으로 좋아 이걸 사용해야겠습니다.
쿠키 사용하기
// $_COOKEI['쿠키이름'] 방법으로 사용
$popup = $_COOKIE['playon'];
echo $popup;
// 결과 : tistory
기본 설정에서 playon 쿠키이름에 tistory를 넣어서 출력은 tistory가 출력됩니다.
쿠키 삭제하기
// 쿠키 하나만 삭제하기
setcookie('playon', '', time() - 86400, '/');
// 등록된 모든 쿠키 삭제하기
foreach ($_COOKIE as $cookiename => $value) {
setcookie($cookiename, '', time() - 86400, '/');
}
쿠키 삭제는 쿠키 이름에 빈 값을 넣고 만료시간을 지나게 설정해서 삭제합니다.
반응형
'개발 > PHP' 카테고리의 다른 글
Google reCAPTCHA v3 적용하기 (1) | 2019.07.04 |
---|---|
define(): 상수의 정의 (0) | 2019.06.05 |
비밀번호 암호화 확인 password_verity (1) | 2018.10.26 |
비밀번호 암호화 password_hash (0) | 2018.10.26 |
PHP 에러를 표시하기 (0) | 2017.06.12 |