CI 묻고 답하기

제목 header 관련 오류..
글쓴이 빛나는경지 작성시각 2012/02/16 11:42:43
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 21825   RSS

<?php
header("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
header("Content-Type: text/xml; charset=utf-8");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

for($i=0; $i<count($privList); $i++){
    $xml_str = $xml_str . "<user>";
    $xml_str = $xml_str . "<user_id><![CDATA[".$privList[$i]['USER_ID']."]]></user_id>";
    $xml_str = $xml_str . "<user_nm><![CDATA[".$privList[$i]['USER_NM']."]]></user_nm>";
    $xml_str = $xml_str . "</user>";
}

//echo "< ?xml version=\"1.0\" encoding=\"utf-8\" ? >";
echo "<users>".$xml_str."</users>";
?>


오류 내용...
Message: Cannot modify header infomation - headers already sent by (output started at 여기는 이 view를 호출한 컨트롤러를 나타내고있으며:줄표시는 해당파일의 마지막 줄 +1 을 나타내고있습니다. 모든 header부분이 이런 오류를 출력합니다. 이것때문인지 xml로 변환해서 ajax로 읽는데 데이터가 없다고 뜨고있습니다. 제가 php를 이제 시작해서 이부분을 몇일동안 해답을 찾으려해도 아무리 노력해보아도 해답을 못찾지 못해서 여기에 올립니다. 인코딩 관련건은 notepad++로 bom없이 utf-8로 인코딩해봐도 결과는 같았습니다. 도와주세요 ㅠㅠ

 다음글 ajax 로그인[tank_auth]시 세션 사용자 데이... (3)
 이전글 pop3메일 계정에서 데이터를 불러 올 수 있을까요? (1)

댓글

빛나는경지 / 2012/02/16 11:47:23 / 추천 0
소스가 부족한가요? 혹시나 해서 말씀드립니다. 위에 방식처럼 xml변환 후 처리하는 방식이 아닌 post방식으로 할 경우 잘 됩니다. 위 경우도 물론 post방식입니다. 이런 경우처럼 xml변환 후 처리할 때 데이터가 없다고 뜨지만.. text형식으로 alert해보면 데이터는 있습니다. ㅠ..ㅠ header만 되면 xml형식으로 잘 돌아갈듯한데... 왜 안될까염.. ㅠ..ㅠ
변종원(웅파) / 2012/02/16 12:00:52 / 추천 0
Cannot modify header infomation - headers already sent by 
이 메세지는 헤더 출력전에 상위 프로세스에서 echo나 공백 이런게 출력되서 그런겁니다.
상위 프로세스를 쭉 보세요.
한대승(불의회상) / 2012/02/16 12:11:52 / 추천 0
헤더 출력이 잘못 되었네요.

아래처럼 바꿔 보세요.
header("Content-Type: text/xml; charset=utf-8");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");


echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";


빛나는경지 / 2012/02/16 13:01:22 / 추천 0
아 echo나 공백이군요.. 열심히 찾아보겠습니다.. 답변감사해요 ^^

불의회상// 답변감사합니다 ^__^ 월래 그렇게 되어있었어요. 제가 이것저것 보면서 바꾸다보니 저렇게 되어버렸어요 ㅠ..ㅠ 저런 표현은 틀린건가요? 찾다보니 있어서 해본건데.. ㅎ;