2021.03.29
【PHP基礎】ファイルシステム関数⑤ header関数
ファイルシステム関数⑤ 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タブを開くと検証できます。
デモ動画はこちらです。