Web開発では、Webページのリダイレクトは、ログイン後に個人の中央ページにリダイレクトする、古いページを新しいアドレスに移行するなど、一般的な操作です。 PHPは、この関数を実装するシンプルで直接的な方法を提供します。つまり、 Header()関数を使用してHTTPヘッダー情報を送信し、それによりブラウザに新しいページにジャンプするように通知します。
PHPのHeader()関数を使用してRAW 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ステータスコードは、 Header()の3番目のパラメーターを介して設定できます。たとえば、:
<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:フォームの提出後のジャンプに推奨されます
Header( 'Location:...')を使用することは、PHPでWebページのリダイレクトを達成するための最も直接的で効果的な方法です。マスターすると、ページナビゲーション、ステータス転送、ユーザーエクスペリエンスの最適化を簡単に処理できます。実際のプロジェクトでは、Web標準に沿ったリダイレクト戦略を、適切なビジネスロジックおよびHTTPステータスコードと併せて実装できます。