php 에서 쿠키 설정시 주의점
Posted by Albert 4196Day 16Hour 45Min 1Sec ago [2013-10-25]
setcookie 사용시 다음과 같은 에러가 발생할수가 있다.
Warning: Cannot modify header information - headers already sent by
...................................
setcookie함수는 페이지 출력전에 호출이 되어야 합니다.
아니면 캐쉬해서 한번에 출력한다.
캐쉬방법은 ob_start() 참고하여서 사용.
http://ir.php.net/manual/kr/function.ob-start.php
수정전 SetCookie("user_id", $ID_USER, 0, "/");
이런 방식으로 사용하던 방식을(상단에 있으면 상관없으나 중간이나 페이지 출력후에 사용 하였으면 수정필요)
수정후 here_setcookie("user_id",$ID_USER, 0); 이런식으로 수정하여 사용한다.
추가 내용
function here_setcookie($name, $value, $expire, $path='/')
{
if (headers_sent()) {
$cookie = $name.'='.urlencode($value).';';
if ($expire) $cookie .= ' expires='.gmdate('D, d M Y H:i:s', $expire).' GMT';
echo '';
} else {
setcookie($name, $value, $expire, $path);
}
}