ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • setcookie
    Technique/PHP 2016. 5. 9. 12:16
    반응형

    setcookie

    쿠키를 송신함

     

    bool setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] )

     

    setcookie()는 기타 헤더정보와 함께 송신하는 쿠키를 설정한다. 기타  헤더정보와 같이 쿠키는 스크립트에 따라 어느 출력보다 먼저 송신될 필요가 있다.

    ( 이것은 HTTP 프로토콜의 규약이다 ) <html>이나 <head>태그는 물론 공백도 포함, 모든 출력보다도 먼저 이 함수를 호출 하도록 해야만 한다.

     

    한번 쿠키가 송신되면 다음 페이지의 로드로부터는 $_COOKIE 배열에 의해 쿠키에 접근가능 하다. 쿠키의 값은 $_REQUEST 배열로부터도 접근할 수 있을지도 모른다.

     

    파라메터

    setcookie의 각 파라메터가 어떻게 작용하는지 알기 위해선 RFC6265를 참조하자

     

    name

    : 쿠키의 이름

     

    value

    : 쿠키의 값, 이 값은 client의 컴퓨터에 보존되기 때문에 중요한 정보는 보존하지 않도록하자. name이 'cookiename'이라고 한다면 그 값은 $_COOKIE['cookiename']으로 취득할 수 있다.

     

    expire

    : 쿠키의 유효기간. 이것은 Unix  time stamp이기에 Epoch(1970년 1월 1일) 로부터 경과된 초수가 된다. time()또는 mktime() 함수에 의해 반환되는 현재의 UNIX표준시에 기한으로 하고 싶은 필요한 초수를

    더한 것을 이용할 수 있다. 가령 time()*60*60*24*30 는 쿠키의 유효기간을 30일후로 설정한다. 0을 설정하거나 생략하는 경우에는 쿠키는 세션의 최후( 즉 브라우저를 닫을 때 )가 유효기간 이된다.

    주의

    expire파라메터 에는 Wdy, DD-Mon-YYYY HH:MM:SS GMT와 같은 형식이 아니라 Unix time stamp를 사용한다는 것을 주의하자

    이것은 PHP의 내부에서 자동적으로 변환을 하고 있기 때문이다.

     

    path

    서버상의 쿠키를 유효로 하는 패스 '/'을 설정한다면 쿠키는 domain 이하 전체에서 유효하게 된다. '/foo/' 를 설정하게되면 쿠키는 /foo/디렉토리와 그 서브 디렉토리의 이하 (/foo/boo)에서만 유효하게 된다

    디폴트 값은 쿠키가 설정될 당시의 current directory 이다.

     

    domain

    쿠키가 유효한(서브) 도메인 이것은 'www.example.com'와 같은 서브 도메인에 설정하게 된다면 www 서브도메인 또는 자기자신의 전체의 서브도메인 ( w2.www.example.com 등)에서 쿠키를 사용할 수 있게 된다.

    서브도메인을 포함한 도메인 전체에서 쿠키를 유요하게 하고 싶다면 그 도메인 자체( 이 경우엔 www.example.com )를 설정하자.

     

    secure

    client로 부터의 안전한 HTTPS 접속의 경우에만 쿠기가 송신되도록 한다. TURE를 설정한다면 보안적인 접속이 존재하는 경우에만 쿠키를 설정한다. 서버쪽에서는 이런 보안적인 접속의 경우에만 쿠키를 설정하는 처리는

    프로그래머의 책임이된다 ( 예를 들면 $_SERVER['HTTPS']의 내용을 사용한다)

     

    httponly

    TRUE를 설정한다면 HTTP를 사용하는 경우에만 쿠키에 접근할수 있게 된다. 즉 javascript와 같은 스크립트 언어로부터는 접근할수 없게되다.

    이 설정을 사용하게되면 XSS공격에 대해 ID를 도난당할 위험성을 줄일 수 있다 ( 그러나, 모든 브라우저가 이 설정을 지원하고 있지는 않다. )고 말하고는 있지만

    이것은 늘 논쟁의 대상이되고 있다. PHP5.2.0에서 추가되었다. TRUE또는 FALSE로 설정한다.

     

    반환치

    혹시 이 함수를 호출하여 이전에 무언가의 출력이 있는 경우에는 setcookieI)는 실패하여 FALSE를 반환한다.

    setcookie()가 정상적으로 실행된다면 TRUE를 반환한다. 이함수에서는 유저가 쿠키를 받아들였는가는 판단할 수 없다.

    반응형

    'Technique > PHP' 카테고리의 다른 글

    static, const, memoization  (0) 2016.12.20
    1,0 true, false  (0) 2016.12.07
    money_format  (0) 2016.04.15
    move_uploaded_file  (0) 2016.04.11
    file_get_contents  (0) 2016.04.08

    댓글

Designed by Tistory.