Developer

【PHP基礎】ファイルシステム関数⑤ header関数
2021.03.29
Lv1

【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タブを開くと検証できます。

デモ動画はこちらです。

PHP基礎 連載目次リンク

PHP基礎 連載目次