ファイルシステム関数⑤ header関数
この記事では、不正入力時のリダイレクトに使われるheader関数を説明します。
構文
header関数は、以下の構文をとります。
1 | header( $header , $replace , $response_code ) |
$headerは”Location: 遷移先パス”という文字列。
$replaceは前に送信された類似のheaderを置き換えるかどうかで、既定ではtrueです。
$response_codeはレスポンスコードを強制的に指定します。指定しない場合302のレスポンスコードになります。
実用例 不正入力時のリダイレクト
Locationレスポンスヘッダは、リダイレクト先のURLを指定するヘッダ情報です。
この例では、不正解の時とPOST以外のリクエストの時(URLを直で叩いたとき等)に、
トップページにリダイレクトするようにしています。
コード
1 2 3 4 5 6 7 8 9 10 11 12 | <!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> |
バリデーションコード
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?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タブを開くと検証できます。
デモ動画はこちらです。
動画プレーヤー
00:00
00:00