今回は「header()」を使い以下2種類のリダイレクト方法についてご紹介します。
・通常のリダイレクト
・$_POSTを渡すリダイレクト
OS:Windows11 / WSL(Ubuntu20.04)
php:v7.4.33
通常のリダイレクトのコードは以下です。
header("Location: リダイレクト先のパス");
例)header("Location: file1.php");
受け取った$_POSTをさらに次に渡すリダイレクトのコードは以下です。
header("Location: リダイレクト先のパス", true, 307);
例)header("Location: file1.php", true, 307);
以下のように1つのフォルダの中にform.php、file1.php、file2.phpを作成してください。
■form.php
<h2>form.php</h2>
<form action="./file1.php" method="post">
<p><label for="name">氏名</label></p>
<p><input type="text" name="name"></p>
<p><label for="password">パスワード</label></p>
<p><input type="text" name="password"></p>
<button type="submit" name="operation" value="send">登録</button>
</form>
■file1.php
<h2>file1.php</h2>
<?php
header("Location: file2.php", true, 307);
?>
■file2.php
<h2>file2.php</h2>
<?php
echo "<pre>" , var_dump($_POST) , '</pre>';
?>
3ファイルを作成したら、form.phpをブラウザで開き、フォームを送信してみてください。
formを送信すると、file1.phpでリダイレクトされfile2.phpが表示されるはずです。
フォームから送信したデータがリダイレクト先のfile2.phpで受け取れていることが確認できます。
リダイレクトについては以上です!