PHP Cookie 사용 튜 토리 얼 상세 설명

3593 단어 PHPCookie
1.CookiePHP 를 설정 하고 SetCookie 함수 로 Cookie 를 설정 합 니 다.주의해 야 할 점 은 쿠키 는 HTTP 프로 토 콜 헤더 의 일부분 으로 브 라 우 저 와 서버 간 에 정 보 를 전달 하 는 데 사용 되 므 로 HTML 파일 자체 의 콘 텐 츠 출력 전에 쿠키 함 수 를 호출 해 야 합 니 다.SetCookie 함 수 는 쿠키 를 정의 하고 HTTP 헤더 뒤에 추가 합 니 다.SetCookie 함수 의 원형 은 다음 과 같 습 니 다.int SetCookie(string name,string value,int expire,string path,string domain,int secure);name 을 제외 한 모든 인 자 는 선택 할 수 있 습 니 다.value,path,domain 세 개의 매개 변 수 는 빈 문자열 로 대체 할 수 있 으 며 설정 되 지 않 았 음 을 표시 합 니 다.expire 와 secure 두 매개 변 수 는 수치 형 으로 0 으로 표시 할 수 있 습 니 다.expire 인 자 는 표준 유 닉 스 시간 표시 로 time()또는 mktime()함수 로 얻 을 수 있 으 며 초 단위 입 니 다.secure 매개 변 수 는 이 쿠키 가 암호 화 된 HTTPS 프로 토 콜 을 통 해 네트워크 에서 전 송 될 지 여 부 를 나 타 냅 니 다.현재 설 정 된 쿠키 는 즉시 효력 이 발생 하 는 것 이 아니 라 다음 페이지 를 기 다 려 야 볼 수 있 습 니 다.이 는 설 정 된 이 페이지 에서 쿠키 가 서버 에서 클 라 이언 트 브 라 우 저 에 전달 되 고,다음 페이지 브 라 우 저 에서 쿠키 를 클 라 이언 트 기기 에서 꺼 내 서버 로 전송 하 는 이유 입 니 다.같은 페이지 에 Cookie 를 설정 합 니 다.실제 적 으로 뒤에서 앞으로 가기 때문에 새로운 Cookie 를 삽입 하기 전에 하 나 를 삭제 하려 면 삽 입 된 문 구 를 먼저 쓰 고 삭 제 된 문 구 를 써 야 합 니 다.그렇지 않 으 면 원 치 않 는 결과 가 나 올 수 있 습 니 다.몇 가지 예 를 살 펴 보 자.간단 한 것:SetCookie("MyCookie","Value of MyCookie");실효 시간 이 있 는:SetCookie("With Expire","Expire in 1 hour",time()+3600);//3600 초=1 시간 모든 것:SetCookie("FullCookie","Full cookie value",time()+3600,"/forum",".phpuser.com",1);여기 서 설명 할 것 이 있 습 니 다.예 를 들 어 사이트 에 몇 개의 다른 디 렉 터 리 가 있 습 니 다.그러면 경로 가 없 는 Cookie 만 사용 하면 한 디 렉 터 리 아래 페이지 에 설 치 된 Cookie 는 다른 디 렉 터 리 의 페이지 에서 볼 수 없습니다.즉,Cookie 는 경 로 를 향 한 것 입 니 다.실제로 지정 한 경로 가 없 더 라 도 WEB 서버 는 현재 경 로 를 브 라 우 저 에 자동 으로 전달 하고,지정 한 경 로 는 서버 가 설정 한 경 로 를 사용 하도록 강제 합 니 다.이 문 제 를 해결 하 는 방법 은 SetCookie 를 호출 할 때 경로 와 도 메 인 이름 을 추가 하 는 것 입 니 다.도 메 인 이름 의 형식 은'www.phopuser.com'일 수도 있 고'phopuser.com'일 수도 있 습 니 다.SetCookie 함수 에서 value 를 나타 내 는 부분 은 전달 할 때 자동 으로 encode 되 는데,즉 value 의 값 이'test value'이면 전달 할 때'test%20value'가 되 고 URL 의 방법 과 같다 는 것 이다.물론 프로그램 으로 서 는 PHP 가 쿠키 값 을 받 을 때 자동 으로 decode 하기 때문에 투명 합 니 다.같은 이름 의 여러 개의 쿠키 를 설정 하려 면 배열 을 사용 해 야 합 니 다.방법 은 SetCookie("CookieArray[]","Value 1")입 니 다.SetCookie("CookieArray[]", "Value 2");또는 SetCookie("CookieArray[0]","Value 1");SetCookie("CookieArray[1]", "Value 2");2.CookiePHP 의 수신 과 처리 가 Cookie 의 수신 과 처리 에 대한 지원 이 매우 좋 고 완전 자동 적 이 며 FORM 변수의 원칙 과 같이 매우 간단 합 니 다.예 를 들 어 MyCookier 라 는 Cookie 를 설정 하면 PHP 는 자동 으로 WEB 서버 에서 받 은 HTTP 헤드 에서 이 를 분석 하고 일반 변수 와 같은 변 수 를 형성 합 니 다.$myCookie 라 고 하 는데 이 변수의 값 은 Cookie 의 값 입 니 다.배열 이 똑 같이 적용 된다.또 다른 방법 은 PHP 의 전역 변 수 를 참조 하 는 것 입 니 다$HTTPCOOKIE_VARS 배열.각각 예 를 들 어 다음 과 같다.(이것들 이 모두 이전 페이지 에 설정 되 어 있 고 유효 하 다 고 가정 하면)echo$MyCookie;echo $CookieArray[0];echo count($CookieArray);echo $HTTP_COOKIE_VARS["MyCookie"];이렇게 간단 해.3.쿠키 를 삭제 하려 면 이미 존재 하 는 쿠키 를 삭제 해 야 합 니 다.두 가지 방법 이 있 습 니 다.하 나 는 name 인자 만 있 는 SetCookie 를 호출 하 는 것 입 니 다.그러면 이 name 이라는 쿠키 는 관계 기기 에서 삭 제 됩 니 다.또 다른 방법 은 쿠키 의 실효 시간 을 time()또는 time()-1 로 설정 하 는 것 입 니 다.그러면 이 쿠키 는 이 페이지 를 탐색 한 후에 삭 제 됩 니 다(사실은 효력 이 없습니다).주의해 야 할 것 은 쿠키 가 삭 제 될 때 현재 페이지 에 있 는 값 이 유효 합 니 다.4.쿠키 를 사용 하 는 제한 은 먼저 HTML 파일 의 내용 을 출력 하기 전에 설정 해 야 합 니 다.그 다음으로 브 라 우 저 마다 쿠키 처리 에 대한 인사말 이 다 르 고 오류 가 발생 할 수 있 습 니 다.예 를 들 어 MS IE+SERVICE PACK 1 은 도 메 인 이름과 경 로 를 가 진 Cookie 를 정확하게 처리 하지 못 하고 Netscape Communicator 4.05 와 MS IE 3.0 은 경로 와 시간 이 없 는 Cookie 를 정확하게 처리 하지 못 한다.MS IE 5 에 대해 서 는 도 메 인 이름,경로,시간 이 있 는 Cookie 를 처리 할 수 없 을 것 같 습 니 다.이것 은 내 가 본 사이트 의 페이지 를 설계 할 때 발견 한 것 이다.세 번 째 제한 은 클 라 이언 트 에 있 습 니 다.하나의 브 라 우 저가 만 들 수 있 는 쿠키 수 는 최대 30 개 이 며,각각 4KB 를 초과 할 수 없 으 며,웹 사이트 마다 설정 할 수 있 는 쿠키 수 는 총 20 개 를 초과 할 수 없습니다.

좋은 웹페이지 즐겨찾기