php 오류 질문드려요
본문
해당팁을 사용하고 있는데요. 이게 오류가 나더라구요.
오류내용은
Warning: Cannot modify header information - headers already sent by (output started at /homepages/24/d908461896/htdocs/bbs/db_table.optimize.php:95) in /homepages/24/d908461896/htdocs/common.php on line 799
Warning: Cannot modify header information - headers already sent by (output started at /homepages/24/d908461896/htdocs/bbs/db_table.optimize.php:95) in /homepages/24/d908461896/htdocs/common.php on line 801
Warning: Cannot modify header information - headers already sent by (output started at /homepages/24/d908461896/htdocs/bbs/db_table.optimize.php:95) in /homepages/24/d908461896/htdocs/common.php on line 802
Warning: Cannot modify header information - headers already sent by (output started at /homepages/24/d908461896/htdocs/bbs/db_table.optimize.php:95) in /homepages/24/d908461896/htdocs/common.php on line 803
Warning: Cannot modify header information - headers already sent by (output started at /homepages/24/d908461896/htdocs/bbs/db_table.optimize.php:95) in /homepages/24/d908461896/htdocs/common.php on line 804
Warning: Cannot modify header information - headers already sent by (output started at /homepages/24/d908461896/htdocs/bbs/db_table.optimize.php:95) in /homepages/24/d908461896/htdocs/common.php on line 805
다음과 같구요.
일단 오류라인 내용은
db_table.optimize.php:95 오류라인
echo "<script>document.getElementById('ct').innerHTML += '$str';</script>\n";
common.php on line 799 ~ 805 오류라인
header('Content-Type: text/html; charset=utf-8');
$gmnow = gmdate('D, d M Y H:i:s') . ' GMT';
header('Expires: 0'); // rfc2616 - Section 14.21
header('Last-Modified: ' . $gmnow);
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
header('Pragma: no-cache'); // HTTP/1.0
입니다.
이거 해결하려면 어떻게 하면 될까요?
답변 3
echo "<script>document.getElementById('ct').innerHTML += '$str';</script>\n";
무엇 때문에 이게 필요하신지 모르겠지만
다르 곳으로 옮기셔야 합니다.
먼저 답변 다신분이 맞으신세요.
원인을 아셔야 하는데. HTTP 프로토콜에서 헤더와 바디가 있는데요. 바디가 나오기전에(우리가 흔히 소스보기 하면 보이는 그것) 헤더가 모두 출력되어야 하는데. 문의 주신것에선 헤더출력하기전에 바디에 해당하는 부분이 출력되서 그렇습니다.
db_table.optimize.php를 common.php의 하단 header(~~~) 보다 위쪽에서 include 하고 있는데요
header(~~)보다 앞에서 무언가 출력하는 코드가 있으면 위와 같은 에러가 나옵니다
$str .= ~~
echo ~~
db_table.optimize.php에서 이런 부분은 필요 없으니 뻬버리세요