session_start()
Document URL : http://kaiserinlee.thoth.kr/1335548
무시무시한 세션스타트 -_-;
웹서버를 구축하면서 모두들 세션변수를 사용할텐데, 여기에서 난 또 백만번 헤맸다.
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at *.html:1) in *.html on line 2
이런 무서운 경고가 -ㅁ-!!!!
분명히 처음엔 문제가 없었는데, utf-8로 변환시킨 후 자꾸만 이 경고문이 뜨는 것이었다.
session_start()는 제일 먼저 불려와져야 하기 때문에, 이 경고문이 뜨면 다른 모든 세션변수들에서 문제가 생겨 아예 페이지 자체가 돌아가지지 않았다.
아무리 저 경고문으로 검색을 해보아도,
session_start() 함수는 아웃풋이 되기전에 불려야되기 때문에 잘 살펴보라느니, 폴더 권한이 문제라느니 다 이런 경우였다 ㅠ_ㅠ
하지만 난 분명 다른 아웃풋(주석문이나 탭 혹은 공백도 포함될 수 있다고 한다.)이 출력되기 전에 이 함수를 불러왔고,
혹시나 싶어서 최상단에다가 <?php session_start();?>로 시작해보기도 했고
php.ini에서 세션변수가 어디로 저장되는지를 확인한 후, 폴더내에서 확인해보기까지 했는데 분명 세션변수는 잘 등록되고 있었다 -ㅠ-
허나 계속되는 저 경고문 -_- 도대체 무엇이 문제였던가 !
그래서 난 구글에게 물었다. 묻고 찾고 묻고 찾고 묻고 찾고 ...
그러던 중 어떤 사람의 글이 눈에 띄었다 .
이 사람도 나와 같은 경우였던 것이다 ~
난 따로 개발서버에 모니터가 달려있지 않은지라, vi와 울트라에디트로만 확인해봤는데 첫머리에 이상한 글자도 없었고,
HEX 모드로 확인해보았지만 이상한 글자같은건 붙여져있지 않았다.
게다가 울트라 에디트로는 UTF-8 BOM없음 형식으로 변환하려해도 그 변환형식이 없어보였다 -_-;
저 필자가 노트패드플러스로 쓴다해서 변환설정을 봤더니 빙고 -ㅁ-!
거기에 있었다 !
UTF-8(BOM없음)형식으로 변환하는 것이 말이다
어떤 사람은 plain ANSI 형식으로 변환해야된다고 하는 사람도 있었지만, UTF-8설정으로 해야되는 나로써는, 그렇게 할 수 없었고,
여튼 이 형식으로 변환해서 성공했다.
그치만 이 파일이 include 되는 모든 파일이 다 이 형식으로 변환되어야 하는데, 하나라도 아니면 똑같은 경고문이 -_-;;;;;
사실 이 형식이 html 태그가 잘 안먹히는 경우도 있다고 들었다 ; 직접 본적은 없지만, 앞으로 계속 이 설정으로 개발해야되는데 태그가 안먹힌다면 큰일 ;
하지만 일단 이렇게 진행해 나가기로 했다. 혹시 다른 누군가 나와 같은 경우가 있다면, 이 글이 꼭 도움이 되었으면 좋겠다 ^^
* 간혹 @session_start(); 로 하면 해결된다는 글이 있는데, 앞에 @를 붙이는 것은 근본적인 해결책이 아니다.
이는 경고문을 무시하라는 것이지 절대 !!!! 해결되는 것이 아니다 !
** 정리
- session_start(); 전에 출력문이 있으면 안된다.
- 그래도 안된다면 세션변수가 저장되는 폴더 권한을 777로 주었는지 확인해보자.
- 그래도 안된다면 UTF-8(BOM없음) 형식으로 저장해보자.
- 그래도 안된다면 모든 파일을 이 형식으로 저장하자.
- 그래도 안된다면 php.ini 에서 default-charset utf-8 로 설정해보라.
난 이것도 안해줘서 경고문이 떴었다 -_ㅠ
- 설정은 모두 통일하자 !
[출처] session_start()|작성자 청산아
'프로그래밍 > PHP' 카테고리의 다른 글
php $_SERVER 함수 (0) | 2013.12.15 |
---|---|
PHP - flock 함수 (0) | 2013.11.29 |
PHP - mysql_num_rows 의미 (0) | 2013.11.29 |
unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in 해결법 (0) | 2013.11.26 |
PHP session_start() 에러 해결책 첫번째 (0) | 2013.11.24 |
form action 값이 안넘어올때 PHP처리방법 (0) | 2013.11.24 |
메타태그를 이용한 IE 쿼크모드(호환성보기) 설정 (0) | 2013.11.22 |
HTML - HTML에서 php 호출하기 (0) | 2013.11.22 |