현재 위치: > 최신 기사 목록> Header () 함수를 사용하여 리디렉션 할 때 페이지 빈이 표시되는 이유는 무엇입니까? 이 문제를 해결하고 해결하는 방법은 무엇입니까?

Header () 함수를 사용하여 리디렉션 할 때 페이지 빈이 표시되는 이유는 무엇입니까? 이 문제를 해결하고 해결하는 방법은 무엇입니까?

M66 2025-07-28

PHP 개발에서 페이지 리디렉션에 Header () 함수를 사용하는 것이 일반적인 관행입니다. 예를 들어:

 header("Location: http://m66.net/anotherpage.php");
exit;

위의 코드는 사용자를 http://m66.net/anotherpage.php 페이지로 리디렉션합니다. 리디렉션은 매우 간단하고 일반적인 작업이지만 때로는 특히 Header () 함수를 사용할 때 빈 페이지가 발생합니다. 이 기사에서는 페이지가 비어있는 이유를 설명하고 문제 해결 및 솔루션을 제공합니다.

1. 헤더 () 함수 전에 출력이 있습니까?

HTML 출력 전에 헤더 () 함수를 호출해야합니다. HTML 컨텐츠 (예 : 공백, 라인 브레이크, 오류 메시지 등)가 Header () 함수를 호출하기 전에 출력 된 경우 PHP는 오류를 던지고 리디렉션이 적용되지 않으므로 결국 페이지가 비워 질 수 있습니다.

해결책:

  • 헤더 () 함수에 이전에 출력이 없는지 확인하십시오. 파일의 시작과 Header () 호출 사이에 공백, 라인 브레이크 또는 HTML 컨텐츠가 있는지 확인할 수 있습니다.

  • 예상치 못한 출력을 피하기 위해 파일의 시작 부분에 공백이나 신생이없는 것이 가장 좋습니다. 파일의 BOM (바이트 주문 마커)을보고 추가 공백 문자가 포함되지 않도록 파일이 올바르게 인코딩되어 있는지 확인할 수 있습니다.

문제 해결 단계 :

  1. PHP 파일을 열고 Header () 함수 전에 출력이 없음을 확인하십시오.

  2. 필요한 경우 OB_START ()를 사용하여 초기 출력을 피하기 위해 출력 버퍼링을 활성화하십시오.

 <?php
ob_start(); // 출력 버퍼링을 켭니다
header("Location: http://m66.net/anotherpage.php");
exit;
ob_end_flush(); // 출력 버퍼를 청소하고 컨텐츠를 출력하십시오
?>

2. exit () 함수가 Header () 이후에 호출됩니까?

헤더 () 함수는 스크립트 실행을 즉시 종료하지 않으며, 이후에 exit () 또는 die () 함수가 호출 될 때만 스크립트가 실행을 중지합니다. 따라서 Header ()을 호출 한 후 Exit ()을 호출하지 않으면 PHP는 후속 코드를 계속 실행하여 빈 또는 페이지의 오류가 발생할 수 있습니다.

해결책:

  • Header () 함수 직후에 Exit ()을 호출하여 스크립트가 실행을 종료하고 다른 컨텐츠가 출력되지 않도록하십시오.

 header("Location: http://m66.net/anotherpage.php");
exit; // 스크립트가 실행을 종료하는지 확인하십시오

3. 헤더 정보가 전송 되었습니까?

헤더 정보가 headers_sent () 함수를 통해 전송되었는지 확인할 수 있습니다. 헤더 () 함수가 호출 될 때 브라우저가 헤더 정보를 수신 한 경우 PHP는 헤더 정보를 다시 보낼 수 없으므로 리디렉션 실패가 발생합니다.

해결책:

  • Header () 함수를 호출하기 전에 Headers_Sent () 함수를 사용하여 헤더 정보가 전송되었는지 확인하십시오.

  • 헤더가 전송 된 경우 OB_START ()를 사용하여 출력을 버퍼링 할 수 있습니다.

 if (!headers_sent()) {
    header("Location: http://m66.net/anotherpage.php");
    exit;
} else {
    echo "리디렉션 할 수 없습니다,헤더 정보가 전송되었습니다";
}

4. 페이지가 비어있는 PHP 오류가 있습니까?

페이지 공백은 PHP 오류로 인해 발생할 수 있습니다. 기본적으로 PHP는 오류 메시지가 표시되지 않고 대신 빈 페이지를 직접 출력 할 수 있습니다. 오류 보고서를 켜면 잠재적 인 문제가 있는지 확인할 수 있습니다.

해결책:

  • 개발 중에 PHP 오류보고를 통해 잠재적 오류를 감지하고 수정하십시오.

 error_reporting(E_ALL);  // 모든 오류 보고서를 켜십시오
ini_set('display_errors', 1);  // 페이지에 오류가 표시됩니다

5. 올바른 HTTP 상태 코드가 리디렉션에 사용 되는가?

Header () 함수를 사용하여 리디렉션 할 때 올바른 HTTP 상태 코드가 사용되는지 확인하십시오. 기본 리디렉션 상태 코드는 302 (임시 리디렉션)입니다. 리디렉션이 영구적 인 경우 301 상태 코드를 사용해야합니다.

 header("Location: http://m66.net/anotherpage.php", true, 301); // 영구 리디렉션
exit;

요약

위의 문제 해결 단계를 통해 Header () 함수를 사용하여 리디렉션 할 때 Page Blank 문제를 발견하고 해결할 수 있습니다. 주요 검사 지점에는 다음이 포함됩니다.

  • Header () 호출 전에 출력이 없는지 확인하십시오.

  • 스크립트가 실행을 종료하도록 exit ()을 호출하십시오.

  • 헤더 메시지가 전송되었는지 확인하십시오.

  • 오류 보고서를 켜면 다른 오류 메시지가 있는지 확인하십시오.

이러한 조치를 통해 페이지 공백 문제를 피하고 리디렉션이 제대로 작동하도록 할 수 있습니다.