・PHPでリダイレクトする方法を知りたい。
・header関数の使い方がよくわからない。
PHPでは、別のページにリダイレクト(遷移)する処理を実装できますが、正しい処理の書き方を知らない初心者の人も多いでしょう。
そこでこの記事では、PHPのheader関数でリダイレクト処理を行う方法について詳しく解説していきます!
この記事を読めば、header関数の使い方を理解し、リダイレクト処理を行うことができるようになるでしょう。
PHPのリダイレクト処理についてわからない、header関数の使い方を知りたい人は、ぜひ最後までご覧ください。
目次
リダイレクトとは?
そもそもリダイレクトって何かわからない人もいると思うので、簡単に解説します。
リダイレクトとは、「転送」という意味で、あるページから別のページに転送させる処理のことを言います。
リダイレクトはどういった場面で使われているのかと言うと、
- 会員登録機能
- ログイン機能
- お問い合わせフォーム
- サイトを移転して新しいページに遷移させたいとき
上記のような場面で使われることが多いです。
PHPでは、このような場面で簡単にリダイレクト処理を行うことができます。
それでは、どのようにリダイレクト処理を実装するのか見ていきましょう。
PHPでリダイレクト処理を行う方法
では、実際にPHPでリダイレクト処理を行う方法について解説していきます。
詳しいやり方を知らない人は、ここでしっかり理解していきましょう。
header関数を使ってリダイレクトすることができる
PHPでは、header関数を使ってリダイレクト処理を行うことができます。
header関数は、HTTPヘッダを送信することができる関数です。
HTTPヘッダは、サイトを閲覧しているユーザーとサーバーとの間で、要求→応答の流れにおいて、どのような情報を要求し、どのような情報を受け取るのかを定義するものです。
普段私たちが利用しているサイトでは、このユーザーとサーバーの間で必ずやりとりが行われています。
サイトを見たい場合は、サーバーに「サイトを見せて」と要求し、その要求に対してサーバーが情報を渡すことで、サイトの画面を閲覧できているのです。
このようなやりとりの中で、header関数を指定してHTTPヘッダを送信すると、別のページにリダイレクトすることが可能になります。
header関数の使い方
では、実際にheader関数の使い方を見ていきましょう。
header関数の書き方は次の通りです。
1 |
header('Location: リダイレクトするURL'); |
header関数は、「Location」というものを指定することでリダイレクト処理を実装することができます。
この「Location」の後にコロン「:」をつけて、リダイレクトするURLを指定します。
リダイレクトするURLは、「https://」から始まる絶対パス、または同じディレクトリ内のファイルに遷移する相対パスを指定することができます。
例えば、以下のように「ウェブカツ」のURLを指定して画面を表示してみましょう。
1 2 3 4 |
<?php header('Location: https://webukatu.com/'); exit(); ?> |
画面を表示すると、作成したファイルではなく、「ウェブカツ」のホームページ画面が表示されました。
このように、header関数にLocationを使って、URLを指定することで、簡単にリダイレクト処理を実装することができます。
また、同じディレクトリに新しいファイル「redirect.php」を作成して、リダイレクト処理を書いてみましょう。
■redirect.php
1 2 3 4 5 6 7 8 9 10 11 12 |
<!DOCTYPE html> <html lang="ja" dir="ltr"> <head> <meta charset="utf-8"> <title>サンプルページ</title> </head> <body> <h1>こんにちは</h1> </body> </html> |
■index.php
1 2 3 4 |
<?php header('Location: ./redirect.php'); exit(); ?> |
index.phpに、header関数で「Location: ./redirect.php」と指定します。
この「./」はindex.phpと同じディレクトリを表しています。
結果を画面で表示すると、次のようになるでしょう。
index.phpを開いても、redirect.phpの画面が表示されます。
この結果から、header関数によって、ページがリダイレクトされたことがわかりますね。
このように、header関数では、同じディレクトリ内のファイルにリダイレクトすることもできるので、覚えておきましょう。
PHPでリダイレクトする際の注意点
ここまでで、PHPでリダイレクト処理を行う方法について理解できました。
ただ、PHPのheader関数でリダイレクト処理を行う場合、注意しなければならないことが、いくつかあります。
・header関数の後はexitを指定する必要がある
まず、header関数の前には、改行や空白を含めたHTMLタグやPHPを出力してはいけません。
なぜなら、header関数の前に文字列を出力した場合、その時点でHTTPヘッダが送信されるからです。
例えば、以下のようなコードは正しくありません。
1 2 3 4 5 6 7 |
<?php // header関数の前に出力してはいけない echo 'こんにちは'; header('Location: https://webukatu.com/'); exit(); ?> |
この例では、header関数の前にechoによって文字列が出力されています。
echoによって文字列が出力された時点でHTTPヘッダが送信されるため、header関数によるリダイレクト処理は実行されず、エラーになってしまいます。
また、その他、改行や空白、HTMLタグが出力されている場合も正しくないので、気をつけましょう。
そして、header関数の後には、「exit」を指定する必要があります。
exitは、PHPの処理をその時点で終了させる関数です。
exitを指定しなくてもheader関数によってリダイレクト処理を行うことはできますが、ページが遷移した後もPHPの処理が実行され続けているのは、あまりよろしくありません。
そのため、header関数でリダイレクト処理を行う場合は、必ずexitを指定するようにしておきましょう。
header関数について詳しく知りたい人は、以下の記事をご覧ください。
【PHP】header関数のLocationを使ってリダイレクトする方法まとめ
今回は、PHPでリダイレクト処理を行う方法について詳しく解説しました。
PHPでリダイレクト処理を行うには、header関数を使って実装することができます。
リダイレクト処理は、主にログイン機能やお問い合わせフォーム、サイトを移転して新しいページに遷移させたいときなどに使われます。
どのような場面で使われるのか意識しながら学習すると、より理解が深まるでしょう。
また、リダイレクト処理を行うときは、注意するべきことをしっかり覚えておきましょう。
この記事がPHPの学習に役立つと幸いです。