채택완료

php 오류 질문드려요

https://sir.kr/g5_tip/17696

 

해당팁을 사용하고 있는데요. 이게 오류가 나더라구요.

오류내용은 

 

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개

채택된 답변
+20 포인트

echo "<script>document.getElementById('ct').innerHTML += '$str';</script>\n";

무엇 때문에 이게 필요하신지 모르겠지만

다르 곳으로 옮기셔야 합니다.

db_table.optimize.php를 common.php의 하단 header(~~~) 보다 위쪽에서 include 하고 있는데요 

header(~~)보다 앞에서 무언가 출력하는 코드가 있으면 위와 같은 에러가 나옵니다

$str .= ~~

echo ~~

db_table.optimize.php에서 이런 부분은 필요 없으니 뻬버리세요

 

 

 

 

 

 

먼저 답변 다신분이 맞으신세요.

원인을 아셔야 하는데. HTTP 프로토콜에서 헤더와 바디가 있는데요. 바디가 나오기전에(우리가 흔히 소스보기 하면 보이는 그것) 헤더가 모두 출력되어야 하는데. 문의 주신것에선 헤더출력하기전에 바디에 해당하는 부분이 출력되서 그렇습니다.

답변을 작성하려면 로그인이 필요합니다.