PHPのheader関数でリダイレクトさせる方法です。
リダイレクトには Location を使います。
ログインチェックでエラーになった場合はログインページにリダイレクトさせたりするときに使います。
基本的なことでフレームワークを使ってる人はフレームワーク独自の方法がありますが、今回紹介するのはピュアPHPでリダイレクトする方法です。
PHPのheader関数とLocationでリダイレクトをする方法
1 2 3 4 |
<?php header('Location: https://dev-lib.com/'); exit(); ?> |
簡単ですね!
一応解説が必要そうな部分を以下にまとめました。
リダイレクトをする方法解説
header() を用いて、中に Location:URL を文字列で指定していますね。
header関数とは
header関数はHTTP通信をするときにヘッダー情報を送信するために使う関数です。
HTTP通信は、画面でボタンやリンクを押したときにサーバーにリクエストを行い、サーバーはリクエストを元にクライアント(ユーザーのブラウザ)に何を返すか(レスポンス)を定義します。
クライアントはお客さんて意味ですが、WEB通信ではサイトを閲覧しているユーザーやその環境のことを指します。
・・・僕頭悪いんでなんか文章だと難しいですね。
リクエストは、クライアント→サーバーに注文
レスポンスは、サーバーからクライアントへ提供って感じですかね。
HTTPヘッダー情報とは、「何が欲しい」「何を返す」「どんな状態で返す」かなどを定義したものです。
ここに Location で遷移先を定義すると、「あなたのリクエストの内容ですとこちらへどうぞ」という感じのこちらを定義できます。
exitは忘れずに
ヘッダー情報に次の画面のURLを定義してもPHPの処理は次に進んでしまいます。
でもそのまま処理を続行されるよりリダイレクト先のページを表示する処理をして欲しいので一旦その処理は終了という意味で exit をつけます。
大抵の場合、「入力チェック」→「データをこねくり回してチェックなど」→「次の画面構築」というようなことをサーバー内で処理をします。
リダイレクトは最初の2工程の中で行う場合がほとんどです。
「次の画面構築」中に出力画面をちょっとでも echo などしちゃうとエラーになります。
それをしないように exit をする意味もあります。
echoやprintを
上でもちょっとかじりましたが、echo や print などを使った後にリダイレクトするとエラーになってしまいます。
気をつけてください。
また、PHPの開始タグ(<php? ~)の前に改行などがあるだけでもダメですので気をつけてください。
まとめ
リダイレクトには header関数と Location を使う。
コメントを残す