홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송
사용자 인증...쿠키~
10년 전
쿠키라는것....많이 들어보셨으리라 생각되는데;;;
navyism@php메뉴의 위에 보면 모노로그가 있죠.....
엇;; 그런데 이름쓰는 란이 없습니다. -_-a;;;
그런데 내용을 쓰고 나면...글쓴이 이름이 찍히죠......오로;;;

또 왜 이런게 있습니다....
투표같은걸 하고 한번 더 할라고 그러면 안되죠-_-a

쿠키라는 놈이 그 비밀입니다....

쿠키는 방문자(클라이언트)의 컴터 하드에 저장되는 인증 방법입니다.
세션이란게 있는데 이것은 서버에 저장되는 것이죠;
암튼...모노로그의 경우에서는 미리 사용자 이름을 받아서 쿠키로 사용자의 컴터에 이사람 이름은 뭐다.....라고 저장해 놓은거죠...
누가? -_,-제가;;;

그랬다가...글이 쓰여질때 그 쿠키를 샤샥 꺼내와서 이름을 찍어 주는것입니다.

쿠키는 간단하게.......쿠키의 이름과 쿠키의 값으로 이루어 집니다..
그러니까 변수랑 똑같은거죠....;;

SetCookie(이름,값,시간);

가장 간단한 쿠키 설정 방법 입니다.
예제를 볼까요?...

<?
setcookie("login","ID",0);
?>

이름에 login이라 주고 값에 ID를...그리고 시간은 0으로 주었습니다.
실행을 하면 login이라는 쿠키가 만들어 지죠...그리고 그 login이라는 쿠키에 ID라는 값이 들어가고 시간이 0이라는 얘기는 브라우져를 종료 하면 쿠키가 사라져 버린다는 것입니다.
보통 사이트에서 로그인을 하고 브라우져를 닫으면 다시 로그인을 해야 하죠? -.- 그거랑 같은겁니다...

암튼...다음소스를 보죠;;

<?
echo "쿠키굽기";
setcookie("login","ID",0);
?>

실행하면?..............
-.- 에러납니다..

cookie는 서버에서 HTTP프로토콜을 이용하는 header정보에 해당하기 때문에 cookie를 설정하는 소스앞에 화면에 표시되는 어떠한 소스도 올수 없습니다.... 그러니까 앞에 echo문이 있으면 화면에 "쿠키굽기"라는 문자가 찍히기 때문에 에러가 납니다.

이렇게 수정해야죠;;

<?
setcookie("login","ID",0);
echo "쿠키굽기";
?>

저도 첨엔 이게 뭔상관이길래;;;; 했는데....
뭐 하다보니.....그냥 그러려니 하고 삽니다.....

그러려니 하세요.....우리가 뭔 힘이 있나요;;;

자 그럼 다른 예제를 보죠;;

<?
setcookie("login","ID",3600);
?>

시간에 3600을 넣었네요...이건 현재 시간으로 부터 3600초 동안 지속된다는 것이죠....브라우져를 닫아버리건...컴터를 끄건 간에... 3600초 동안 쿠키는 남아있습니다.
보통 투표같은곳엔 이렇게 사용을 하겠죠...
그럼 1년동안 쿠키를 남기려면?

365일x24시간x60분x60초.....
즉.....365*24*60*60 으로 주시면 되죠...

그럼 이제 쿠키를 가져오는 방법 입니다.

그냥 간단히 쿠키이름을 변수로 해서 가져와도 된다죠...볼까요?

<?
echo $login;
?>

이렇게 하면 login이란 쿠키의 값이 찍힙니다...
그러니까 ID라고 찍히겠죠...
그런데 이런 방법은 보안상으로 심각한 문제가 있습니다.
예를 들어 이 문서를 test.php라고 한다면...
주소창에.......

http://DOMAIN/test.php?login=ID

이렇게 get방식으로 전달하면 $login이란 변수에 ID라는 값이 들어가서
쿠키가 없더라도 ID가 찍힙니다....
만약 보안상으로 중요한 인증이었다면 문제가 되겠죠...
그래서 이런 변수처럼 쿠키를 사용하면 안됩니다;;;

쿠키값을 가져오는 방법은 이렇게 합니다..

$HTTP_COOKIE_VARS[login]

위와 같은 방법을쓰는데 위 변수에 login이라는 쿠키의 값이 들어갑니다.
사용은 이렇게 하죠..

<?
echo $HTTP_COOKIE_VARS[login];
?>

$HTTP_COOKIE_VARS는 꼭 대문자로 쓰셔야 합니다...
암튼 이렇게 하면 아까 처럼 get방식으로 변수를 전달하더라도 문제가 발생하지 않는다는것이죠....

인증은 이렇게 해야겠죠?

<?
if($HTTP_COOKIE_VARS[login] && $HTTP_COOKIE_VARS[login]=="ID")
{.......}
?>

if문을 보면 login이라는 쿠키가 존재하고....
그 값이 ID일때 실행문을 실행하는것입니다.
그러니까 제대로 쿠키인증을 받았다면 실행이 되는것이겠죠...

그럼 로그아웃은 어떻게 해야 할까요?...
쿠키의 값을 0으로 주어서 쿠키를 구워주면 됩니다.

setcookie("login",0,0);

이렇게 해주면 login이라는 쿠키의 값이 없어지기 때문에 로그아웃이 되는거겠죠......

쿠키를 주는 setcookie라는 함수에는 몇가지 요소가 더 들어갑니다...

setcookie(쿠키이름,쿠키값,적용시간,적용할디렉토리,호스트이름,보안사용);

이렇게 들어가는데.....뒤에 값들은...그다지 -_-a;;;;
따로 공부를 더 하시는게 좋을것 같네요;;;

쿠키란게 상당히 어렵고 복잡한것 같지만...
일단 이해를 하고 나면....엄청 간단하고 편리한 것이죠;;;

그리고 쿠키를 너무 남발하지 않는게 좋을듯하네요..
php에서는 쿠키남발을 막기 위해 쿠키갯수가 제한이 되어있다고 하네요.. 또 기존의 쿠키가 이유없이 날아가 버리기도 한답니다...
또 서버의 php버전에 따라서 쿠키가 잘 안먹는 경우도 있으며...
공부하시면서..또는 작업하시면서...알수없는 에러를 많이 만나시게 될겁니다...
추천추천 : 310 추천 목록
번호 제목
3,025
 윈도우10 시스템파일 손상 (초간단 오류 복구방법!!)
3,024
 PHP 파일 존재 여부 파악하기(로컬 파일 존재 및 원격지 파일 존재)
3,023
 [CSS] 박스 세로 가운데 중앙 정렬 6가지
3,022
 CSS Layout 수평 & 수직 정렬
3,021
 여러 도메인들 간 쿠키 공유하기
3,020
 태그 사이에 있는 텍스트를 추출
3,019
 [JQuery] textbox focus on off일때 숫자 콤마 보여주기
3,018
 쿠키 생성,가져오기,삭제
3,017
 사용자 함수 모음
3,016
 마우스,키보드 제한 ( 오른쪽클릭,드래그,영역선택등..)
3,015
 [HTML5] <video> - DOM으로 제어하기
3,014
 HTML5 video 태그에서 영상 좌우반전
3,013
 PHP - 특정 태그 및 문자열 추출, 제거
3,012
 [PHP] define과 defined의 차이
3,011
 우클릭 완벽차단 스크립트
3,010
 iframe 높이 100% 맞추기
3,009
 curl 함수를 이용한 HTTP REFERER 변경
3,008
 윈도우10 시스템 파일 및 Dism 검사
3,007
 텍스트 줄바꿈, 글자자르기 CSS
3,006
 jQuery Mobile에서 유용한 코드 10가지.
3,005
 [PHP] dirname()함수와 $_SERVER 관련 상수들
3,004
 [PHP] 파일 크기, 사이즈 불러오는 함수, filesize()
3,003
 [jQuery] jQuery Quick API
3,002
 [ transition ] 링크 hover 색상 변화 속도 조절
3,001
 PHP 5.3.0 에서 사라진 함수들 대체
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.