2010-08-20 3 views
0

PHP는헤더 정보를 수정할 수 없습니다 PHP의 경고 메시지?

$q = "Update tblarticle set art_title='$title', art_cat='$cat', art_des='$txtart' where art_id='".$_GET['art_id']."'"; 
$result = $mysqli->query($q) or die(mysqli_error($mysqli)); 
if($result) 
{ 
    //saved succesfullt 
    $error =0; 
    header("location:mngArt.php"); 
    exit; 
} 
else $error =1; 
} 
?> 
....Some HTML........ 

데이터베이스가 업데이트지고 코드 -하지만 Cannot modify header information 오류 MSG가 팝업됩니다.

+1

. 선택하십시오 : http://stackoverflow.com/search?q=annot+modify+header+information –

+0

그리고 오류 메시지는 정확히 출력 전에 머리글을 보내고 정확히 알려야합니다 –

+1

여러분, 왜 그럴까요? 수십 개의 동일한 사본이있는 질문에 대답하는 데 필요합니까? –

답변

-1

헤더를 수정하려는 경우 닫는 PHP 태그 외부에는 아무 것도 입력 할 수 없습니다. 그래서?> 바깥 쪽의 HTML은 그 경고를 일으킬 것입니다.

+0

사실이 아닙니다. 헤더 전에 클라이언트에 헤더 출력이 아닌 것은있을 수 없습니다. 그래서'header' 함수 호출 이전의 어떤 출력이라도 에러를 일으킬 것입니다. OP에서'?>'다음에 오는 것이 좋습니다. –

1

이유는 화면에 어떤 것이 출력된다는 것입니다. 전체 웹 사이트에서부터 작은 공간 또는 개행 문자에 이르기까지 다양합니다.

중요 : MRW가 말한 것과 달리은 해당 기능을 호출하기 전에 HTML 이 있어서는 안됩니다. 전화를 걸면 원하는 모든 것을 할 수 있습니다.

<?php 전에 코드는 이 아니며이 아니고 ?> 이후 코드입니다.

-4

를 해결하는 가장 쉬운 방법은 파일의 바로 가기이를 추가하는 것입니다 : 이것은 많은 중복을 가지고

<?php 
ob_start(); 
+2

그러면 코드가 복잡 해지고 스크립트의 응답 성이 떨어집니다. – Christian

+0

"수정"하지 않고 단순히 숨기기 –

+0

출력 버퍼링을 쉬운 수정으로 적용하면 안됩니다. 그 대신 특정 용도로 사용하십시오. 잘못 설계된 코드를 리팩터링 할 필요가 없습니다. – jensgram

관련 문제