세이박스

Warning: Cannot modify header information - headers already sent by 오류 해결 방법

웹프로그램
그누보드 및 제로보드 게시판 이용시 다음과 같은 오류 발생할 경우가 있다.

Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/bbs/_head.php:2)

이와같은 오류는 이미지 Header를 출력 했기 때문에 수정할 수 없다라고 합니다.
논리적 오류로써 header 함수가 호출되기 전에 공백또는 문자 등이 이미 사용자에게 열려 있다는 의미입니다.

즉, 오류 페이지와 연관된 모든 페이지들을 확인해서 헤드 및 세션 처리 이전에 출력된 문자나 공백이 없는지 체크 해서 제거 해주면 되겠지만, 소스가 워낙 복잡한 경우 찾기가 쉽지가 않죠.
이때 소스 맨 상단에 ob_start(); 함수를 선언해주면 PHP4이상의 경우 output buffering을 기능을 사용할 수 있어 더이상 Warning 메시지가 나타나지 않습니다.

이와 같은 처리 단점?은 모든 PHP 스크립트 처리를 메모리 버퍼에 담아두었다가 한꺼번에 출력하게 되므로 페이지를 보여주는데 늦어지는 느낌이 날수도 있으며 ob_start()를 중복 사용시 또다른 오류가 발생할 수도 있습니다.

그누보드에서 적용하기 적당한 위치는 /index.php 파일의 맨 상단에 적용 하시면 됩니다.

<?
ob_start();

define("_MW_INDEX_", TRUE); // index 파일
....



 ▶ 최신영화, 최신 미국드라마 무료 다운로드...