복붙노트

PHP 오류 : 헤더 정보를 수정할 수 없습니다 - 이미 보낸 헤더 [duplicate]

PHP

PHP 오류 : 헤더 정보를 수정할 수 없습니다 - 이미 보낸 헤더 [duplicate]

그래서 나는 내 페이지에이 결과물을 가지고있다. 나는 PHP에 익숙하지 않은가? 어쩌면 수정하기가 쉽다.

- header.php 파일은 모든 중요한 정보를 포함하고 있으며 페이지의 배너도 가지고 있습니다. 이 header.php는 모든 페이지에 포함되어 있습니다.

- 세션 값을 확인하여 사용자가 특정 페이지에있을 수 있도록합니다. 사용자가 로그인 할 수 없으면 로그인 페이지로 다시 이동합니다.

이것은 오류가 발생하는 곳입니다. 이것이 내가 가진 것입니다 :

include_once ("header.php");

if ($_SESSION['uid']!='programmer')
{                        
header('Location: index.php');
echo 'you cannot be here';
exit;
}   

리디렉션 할 색인에도 헤더가 있습니다. 그래서 이러한 여러 헤더 참조 나 에게이 오류를주는 데 무엇입니까? 나는 이것을 할 다른 방법을 찾지 못한다.

해결법

  1. ==============================

    1.텍스트가 브라우저에 출력되면 header ()를 사용할 수 없습니다. header.php에 HTML이 포함되어 있기 때문에 header ()를 사용할 수 없습니다.

    텍스트가 브라우저에 출력되면 header ()를 사용할 수 없습니다. header.php에 HTML이 포함되어 있기 때문에 header ()를 사용할 수 없습니다.

    몇 가지 방법으로이 문제를 해결할 수 있습니다.

  2. ==============================

    2.header.php 파일에 "배너가있는"경우 페이지에 일부 HTML 콘텐츠가 출력되고있는 것 같습니다.

    header.php 파일에 "배너가있는"경우 페이지에 일부 HTML 콘텐츠가 출력되고있는 것 같습니다.

    콘텐츠를 출력 한 후에는 HTTP 헤더를 발행 할 수 없습니다.

  3. ==============================

    3.다른 콘텐츠를 보낸 후에는 헤더를 보낼 수 없습니다. 아주 가능성이 큰 범인은 header.php에 닫는?> 태그 뒤에 여분의 공백이 있습니다. 일반적으로 모든 스크립트 전용 PHP 파일에서 닫기 태그를 완전히 생략하는 것이 좋습니다.

    다른 콘텐츠를 보낸 후에는 헤더를 보낼 수 없습니다. 아주 가능성이 큰 범인은 header.php에 닫는?> 태그 뒤에 여분의 공백이 있습니다. 일반적으로 모든 스크립트 전용 PHP 파일에서 닫기 태그를 완전히 생략하는 것이 좋습니다.

    오류는 출력을 보내는 라인 (및 어떤 파일)을 정확히 알려줍니다.

  4. ==============================

    4.나는 다음과 같이 사용되는 Redirect 함수와 관련하여 비슷한 오류가 발생했다.

    나는 다음과 같이 사용되는 Redirect 함수와 관련하여 비슷한 오류가 발생했다.

    function Redirect($url) {
            flush(); // Flush the buffer
            header("Location: $url"); // Rewrite the header
            die;
        }
    

    분명히 ob_flush ()를 추가해야합니다. 이전 헤더를 완전히 비울 수 있습니다. 새로운 기능은 다음과 같습니다.

    function Redirect($url) {
            flush(); // Flush the buffer
            ob_flush();
            header("Location: $url"); // Rewrite the header
            die;
        }
    

    희망이 다른 사람 이이 문제가 도움이 되길 바래!

  5. ==============================

    5.좋아요, 그래서 고쳐 졌어요 ...... 어떻게 확신 할 수 있을지 모르겠지만 어쩌면 누군가가 왜 이렇게 갑자기 작동하는지 설명 할 수 있습니다.

    좋아요, 그래서 고쳐 졌어요 ...... 어떻게 확신 할 수 있을지 모르겠지만 어쩌면 누군가가 왜 이렇게 갑자기 작동하는지 설명 할 수 있습니다.

    이것은 내 코드입니다.

    include_once ("header.php");
    
    if ($_SESSION['uid']!='programmer') {  
        if(isset($_SESSION['uid'])) {
            echo $_SESSION['uid'];
        }                           
    
        header('Location: index.php');
        exit;
    }
    

    다시 말해, 이제는 모두 작동 해! PHP ... 왜 지금 일하십니까?

  6. from https://stackoverflow.com/questions/1793482/php-error-cannot-modify-header-information-headers-already-sent by cc-by-sa and MIT license