웹 개발에서 웹 페이지 리디렉션은 로그인 한 후 개인 중앙 페이지로 리디렉션하거나 이전 페이지를 새 주소로 마이그레이션하는 것과 같은 일반적인 작업입니다. PHP는이 기능을 구현하는 간단하고 직접적인 방법, 즉 HEDER () 함수를 사용하여 HTTP 헤더 정보를 보내서 브라우저에 새 페이지로 이동하도록 알립니다.
PHP의 헤더 () 기능은 원시 HTTP 메시지 헤더 정보를 보내는 데 사용될 수 있으며 구문은 다음과 같습니다.
<span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$header</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$replace</span></span><span> = </span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$response_code</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>);
</span></span>
리디렉션에 사용될 때 공통 양식은 다음과 같습니다.
<span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Location: https://www.example.com'</span></span><span>);
</span><span><span class="hljs-keyword">exit</span></span><span>;
</span></span>
위치는 브라우저가 다른 URL로 점프하도록 지시하는 특수 HTTP 헤더입니다. PHP가 후속 코드를 계속 실행하지 않고 예기치 않은 출력 또는 논리 오류를 방지하기 위해 출구가 호출됩니다.
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$login_success</span></span><span>) {
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Location: /dashboard.php'</span></span><span>);
</span><span><span class="hljs-keyword">exit</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"잘못된 사용자 이름 또는 비밀번호。"</span></span><span>;
}
</span></span>
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$_SERVER</span></span><span>[</span><span><span class="hljs-string">'REQUEST_METHOD'</span></span><span>] === </span><span><span class="hljs-string">'POST'</span></span><span>) {
</span><span><span class="hljs-comment">// 처리 양식</span></span><span>
</span><span><span class="hljs-comment">// ...</span></span><span>
</span><span><span class="hljs-comment">// 감사 페이지로 리디렉션하십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Location: /thank-you.php'</span></span><span>);
</span><span><span class="hljs-keyword">exit</span></span><span>;
}
</span></span>
양식을 제출 한 후 Header ()를 사용하여 점프를 사용하여 페이지를 새로 고치면 데이터의 반복 제출을 효과적으로 방지 할 수 있습니다.
<span><span><span class="hljs-comment">// 데이터를 저장하고 점프하십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Location: /success.php'</span></span><span>);
</span><span><span class="hljs-keyword">exit</span></span><span>;
</span></span>
출력 <br> 전에 헤더를 호출해야합니다 페이지에 출력 (예 : Echo, HTML 태그 또는 공백)이 있으면 Header ()를 사용하면 "헤더 정보를 수정할 수 없습니다". OB_START () 에 의해 출력 버퍼를 켜면이 문제를 피할 수 있습니다.
절대 경로를 사용하는 것이 더 안전합니다 <br> 위치 : Dashboard.php 와 같은 상대 경로를 사용할 수 있지만 경로 오류를 피하기 위해 절대 경로 또는 전체 URL을 사용하는 것이 좋습니다.
HTTP 상태 코드 <br>과 함께 사용하십시오 HTTP 상태 코드는 예를 들어 헤더 () 의 세 번째 매개 변수를 통해 설정할 수 있습니다.
<span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Location: /new-page.php'</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-number">301</span></span><span>); </span><span><span class="hljs-comment">// 영구 리디렉션</span></span><span>
</span></span>
상태 코드는 다음을 의미합니다.
301 : 영구 리디렉션
302 : 임시 리디렉션 (기본값)
303 : 양식 제출 후 점프에 권장됩니다
헤더 사용 ( '위치 : ...')은 PHP에서 웹 페이지 리디렉션을 달성하는 가장 직접적이고 효과적인 방법입니다. 마스터 링하면 페이지 탐색, 상태 전송 및 사용자 경험 최적화를 쉽게 처리 할 수 있습니다. 실제 프로젝트에서는 웹 표준에 더 부합하는 리디렉션 전략을 적절한 비즈니스 로직 및 HTTP 상태 코드와 함께 구현할 수 있습니다.