Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- i18n
- Postfix
- replace
- docker
- JavaScript
- 부모창
- random
- 문자열자르기
- yum
- MySQL
- Python
- 확장자
- Eclipse
- php
- centos
- install
- SVN
- Selectbox
- ubuntu
- RabbitMQ
- Oracle
- jQuery
- 일괄변경
- 천단위
- smarty
- TextBox
- TPL
- mariadb
- 한글 깨짐
Archives
- Today
- Total
wilson's story
Cannot modify header information - headers already sent by 본문
반응형
Warning: Cannot modify header information - headers already
sent by (output started at
/home/test/public_html/test/skin/member/eng/login_check.skin.php:18) in
/home/test/public_html/test/lib/common.lib.php on line 109
오류의 원인은 다른분들의 답변이 맞습니다.
header() 함수를 사용하기 전에 그 어떤 출력(공백/엔터/HTML등)도 선행되어서는 안됩니다.
그러나, 사정상 조건/분기등에 의해 (물론 피할 수 있게끔 코딩하는게 최선이지만) 뒤늦은 header() 를 사용해야 할 수가 있는데요.
이럴때는 PHP4 이상의 output buffering 기능을 사용하실 수 있습니다.
소스 코드의 최상단에 (HTML 및 그 어떤 출력도 나오기 전) 다음과 같은 소스를 삽입하세요.
ob_start();
HTML이나 기타 출력되는 값을 메모리에 저장해 두었다가 프로그램 종료시 한꺼번에 내보내는 명령입니다.
이 펑션이 호출된 이후에 header() 를 만나면 어떤 HTML 출력과도 관계 없이 정상 실행합니다.
단, 기존의 게시판이나 기타 프로그램을 수정하고 계시며, 해당 프로그램에서도 ob_start()를 중복 사용하고 있다면, 해당 프로그램에서의 ob_start() 사용 용도에 따라 HTML출력에 또다른 문제가 발생할 수 있습니다(일반적인 경우 문제 없습니다)
반응형