ファイルシステム関数⑤ header関数
この記事では、不正入力時のリダイレクトに使われるheader関数を説明します。
構文
header関数は、以下の構文をとります。
header($header, $replace, $response_code)
$headerは”Location: 遷移先パス”という文字列。
$replaceは前に送信された類似のheaderを置き換えるかどうかで、既定ではtrueです。
$response_codeはレスポンスコードを強制的に指定します。指定しない場合302のレスポンスコードになります。
実用例 不正入力時のリダイレクト
Locationレスポンスヘッダは、リダイレクト先のURLを指定するヘッダ情報です。
この例では、不正解の時とPOST以外のリクエストの時(URLを直で叩いたとき等)に、
トップページにリダイレクトするようにしています。
コード
<!DOCTYPE html> <head> <meta charset="UTF-8"> <title>トップページ</title> </head> <body> <form action="Sample85.php" method="POST"> 1 + 1 = <input type="text" name="val"><br> <input type="submit"> </form> </body> </html>
バリデーションコード
<?php
if (isset($_POST["val"])) {
if ($_POST["val"] == 2) {
echo "正解です!";
} else {
// 不正解ならTOPページにリダイレクト
header("Location: ./toppage.html");
}
} else {
// POST以外はTOPページにリダイレクト
header("Location: ./toppage.html");
}
?>
成功例
失敗例のデモ
空文字送信した場合のリダイレクトは、
Chromeの場合、F12キーを押して、networkタブを開くと検証できます。
![]()
デモ動画はこちらです。


