PHPのheader関数とLocationでリダイレクトをする方法

PHPのheader関数でリダイレクトさせる方法です。

リダイレクトには Location を使います。

ログインチェックでエラーになった場合はログインページにリダイレクトさせたりするときに使います。

基本的なことでフレームワークを使ってる人はフレームワーク独自の方法がありますが、今回紹介するのはピュアPHPでリダイレクトする方法です。

PHPのheader関数とLocationでリダイレクトをする方法

結論から言うと上記のように書き、https://dev-lib.com/ の部分にリダイレクトさせたいURLを指定します。

簡単ですね!

一応解説が必要そうな部分を以下にまとめました。

リダイレクトをする方法解説

header(‘Location: 遷移先URL‘);

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 を使う。

コロナの影響でみんな大変だから俺もなんかできること

僕は福井県に住んでいるのですが、戦時中に福井大空襲にあい、その直後に大震災にあってボロボロになった話をおばあちゃんに聞きました。

それでも復活することができ、不死鳥の町と言われるようになりました。

先人達には心から感謝し尊敬します。

リーマンショック、東日本大震災、コロナと数十年に一度と言われる被害が立て続けに起きていますが、僕たちは強いです。

今は苦しいかもしれませんがきっと復活できます。

僕は低学歴ですし小さな小さな粒でしかないですが、プログラミングに関しては必死に勉強し15年以上ごはんにありつけています。

プログラミングを勉強している人の役に立てるほどのスキルはあると思っています。

なので1人でもんもんと悩んでいる若手のエンジニア向けに質問を受け付けることにします。

自宅で待機されている間もパソコンとインターネットがあればプログラミングの勉強はできます。

  • PHP
  • SQL
  • HTML・CSS
  • jQuery

とは言ってもいきなり答えを聞いていたのではなかなか成長できないと思うのです。

なので質問の際には次のことをご連携ください。

  • 何をやりたいか
  • どんなことを調べたか、検索キーワードと参考にしたページのURL
  • 調べた結果どこが分からないか
  • できるなら試したコード

メッセージいはとりあえずTwitterにでもください。

質問はこちら

すぐに返事できないかもしれませんがご了承ください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA