가끔 PHP로 코딩을 하다보면 세션을 만질 때가 있습니다.

가끔가다가 세션 관련 부분이 문제를 일으킬때가 엄청 많습니다.
전 여기서 여러가지 경우 중에서 한가지 경우를 설명하겠습니다.

갑자기 이런 문제가 나타나는 경우
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();
echo "session_start(); sample";
?>
위의 소스 처럼 session_start(); 함수가 호출되기 이전에 어떠한 내용도 부라우저에 출력되지 않았으므로 경고 메세지를 표시하지 않습니다.

관련된 함수로는
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
Buy me a coffeeBuy me a coffee

+ Recent posts