오류해결 | Warning Cannot modify header information 오류해결
작성자
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/bbs/_head.php:2) in /home/public_html/bbs/download.php on line 23
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
위와 같은 문제는, 모듈별 interactive session을 사용하지 않고 설계한 제로보드 등의 프로그램들의 고질적 문제입니다. php 또한 워낙에 open binary 정책을 쓰고 있어서 프로그래머들의 정돈된 계획에 많은 오류를 주곤하죠..
 
자~ 해결해봅시다..   항상 [warning] 속에 답이 있답니다.
이미 Header를 보냈기 때문에 정보를 수정/관여 할수 없다고 하네요..
이 논리적 오류는 header 함수가 호출되기 전 해당 client에 space가 열려있기 때문에 발생하는 오류입니다. space는 공백/코드/이미지 등등이 해당될 수 있으므로..
 
header() 함수를 소스코드 상단에 위치 시키면 해결 가능합니다. 하지만 각 리턴값들이 상이한데 그렇게 하기는 쉽지 않죠.. 제가 확인해본 결과 가장 좋은 방법은 아래와 같습니다.
 
header() 함수 사용 소스 최상단에 아래와 같은 코드를 삽입니다.
 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<?
ob_start();   //삽입할 코드
..................................
.........................................................
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
PHP4 의 output buffering 기능을 사용할 수 있습니다.
 
ob_start();
 
HTML이나 기타 출력되는 값을 메모리에 저장해 두었다가 프로그램 종료시 한꺼번에 내보내는 명령입니다. 이 펑션이 호출된 이후에 header() 를 만나면 어떤 HTML 출력과도 관계 없이 순차적으로 실행합니다.
 
단, ob_start()를 중복 사용하고 있다면 HTML출력에 또다른 문제가 발생할 수 있습니다

 

댓글목록

등록된 댓글이 없습니다.

총 게시물 18 개, 페이지 1 RSS
제목 작성자
오류해결 Strict Standards: Assigning the return value of new by reference is deprecated in /home/goodbook/pub… H
오류해결 array_keys() [function.array-keys]: The first argument should be an array in H
오류해결 phpize 실행 Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF enviro… H
오류해결 [phpmyadmin]mysqli 확장모듈을 불러올 수 없습니다.<br />PHP 환경설정을 검사하십시오 H
오류해결 Apache 재시작시 (98)Address already in use: make_sock:could not bind to address 0.0.0.0:80 H
오류해결 httpd: Syntax error on line 106 of /usr/local/server/apache/conf/httpd.conf: Cannot load /usr/local/… H
오류해결 apachectl start시 httpd: apr_sockaddr_info_get() failed for 123-123-123-123.youiwe.co.kr 오류해결 H
오류해결 아파치가 정상적으로 작동하는데 페이지가 열리지 않는 경우 H
오류해결 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (… H
오류해결 Field 'name' doesn't have a default value 오류해결 H
오류해결 php 5.4이상 로그인이 정상적으로 되지 않거나 홈페이지가 정상적으로 보이지 않는 경우 H
오류해결 cannot find sfc.dll plese re-install this application 오류해결 H
오류해결 Cannot start session without errors, please check errors given in your PHP and/or webserver log file… H
오류해결 Warning Cannot modify header information 오류해결 H
오류해결 ERROR 1040 (08004): Too many connections H
게시물 검색