가끔 PHP로 코딩을 하다보면 세션을 만질 때가 있습니다.
가끔가다가 세션 관련 부분이 문제를 일으킬때가 엄청 많습니다.
전 여기서 여러가지 경우 중에서 한가지 경우를 설명하겠습니다.
갑자기 이런 문제가 나타나는 경우
이 문제는 PHP자체의 버그라고 할까요?
네이버 지식인을 찾아보면 답은 간단합니다.
아래는 네이버 지식인에 나온 답입니다.
원인은.. 바로 headers already sent 입니다..
함수가 나타나기 이전에 .. 브라우저에 어떠한 출력도 있어서는 안됩니다.
간단하게 예를 들면
위의 소스는 에러가 발생 합니다.
이유는 session_start(); 가 실행되기 이전에 부라우저에 "warning sample" 라는 내용을 출력했기 때문 입니다...
올바른 소스는..
관련된 함수로는
가끔가다가 세션 관련 부분이 문제를 일으킬때가 엄청 많습니다.
전 여기서 여러가지 경우 중에서 한가지 경우를 설명하겠습니다.
갑자기 이런 문제가 나타나는 경우
Warning: session_start(): open(/home3/plus/public_html/php/session/sess_fd54d01bcd294d722c8cab518af9ba81, O_RDWR) failed: No such file or directory (2) in /home2/plus/public_html/php/three/Hresult_0.php on line 3
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home2/plus/public_html/php/three/Hresult_0.php:3) in /home2/plus/public_html/php/three/Hresult_0.php on line 3
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home2/plus/public_html/php/three/Hresult_0.php:3) in /home2/plus/public_html/php/three/Hresult_0.php on line 3
이 문제는 PHP자체의 버그라고 할까요?
네이버 지식인을 찾아보면 답은 간단합니다.
아래는 네이버 지식인에 나온 답입니다.
원인은.. 바로 headers already sent 입니다..
<?
session_start();
?>
함수가 나타나기 이전에 .. 브라우저에 어떠한 출력도 있어서는 안됩니다.
간단하게 예를 들면
<?
echo "warning sample";
session_start();
?>
위의 소스는 에러가 발생 합니다.
이유는 session_start(); 가 실행되기 이전에 부라우저에 "warning sample" 라는 내용을 출력했기 때문 입니다...
올바른 소스는..
위의 소스 처럼 session_start(); 함수가 호출되기 이전에 어떠한 내용도 부라우저에 출력되지 않았으므로 경고 메세지를 표시하지 않습니다.
<?
session_start();
echo "session_start(); sample";
?>
관련된 함수로는
header();등이 있겠네요.
'컴퓨터 > Linux' 카테고리의 다른 글
노트북에서 (3) | 2006.08.14 |
---|---|
짜증나는 PHP설정이랄까? (2) | 2006.08.02 |
Fedora Core 5로 험난한 과정 (5) | 2006.07.23 |
하드디스크 -_-^ (2) | 2006.07.23 |
서버 고침 (0) | 2006.07.12 |