PHPでページをスムーズに戻る!3つの鍵を紹介

PHPコードを使って前のページに戻る方法のイラストPHP
この記事は約7分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればサンプルコードを活用して機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

あなたが開発者として初めてPHPを学び始めているとすると、ウェブサイトを使いやすくするための基本的な機能の一つである「前のページに戻る」機能の実装が課題となるかもしれません。

しかし心配はいりません。

この記事を読むことで、PHPを使ってユーザーが前のページに戻る方法を理解し、自身のウェブページに実装することができるようになります。

ここでは、そのための3つの方法を詳しく紹介します。

●PHPで前のページに戻る方法

前のページに戻る機能は、ユーザーが以前に訪れたページに簡単に戻ることができるようにするためのものです。

これはユーザビリティを向上させ、ユーザーのウェブサイトでの経験を良好に保つために非常に重要な機能です。

ここでは、PHPで前のページに戻るための3つの主要な方法を紹介します。

○方法1:JavaScriptを利用する

JavaScriptを使用して前のページに戻る最もシンプルな方法は、”window.history.back()”関数を使用することです。

これはブラウザの履歴を1つ戻る命令を出し、ユーザーが前のページに戻ることを可能にします。

○方法2:HTTP_REFERERを利用する

PHPのスーパーグローバル変数である$_SERVER[‘HTTP_REFERER’]を使うと、ユーザーが現在のページに遷移する前に訪れていたページのURLを取得できます。

この方法を使用する場合、注意点として$_SERVER[‘HTTP_REFERER’]が常に正確な値を返すわけではないということがあります。

しかし、簡単な使用ケースでは便利な手段となります。

○方法3:セッションを利用する

PHPのセッションを利用することで、ユーザーが訪れたページの履歴を追跡し、任意のページに戻る機能を実装することができます。

この方法はより柔軟性があり、特定のページへの戻るボタンの作成など、より複雑な機能を実現することが可能です。

●それぞれの方法のサンプルコード

ここでは先ほど紹介したそれぞれの方法について、具体的なサンプルコードとその説明を示します。

なお、この説明は全て日本語で記述されています。

○サンプルコード1:JavaScriptを利用する方法

JavaScriptを利用した前のページに戻る機能のサンプルコードを紹介します。

この例では、ボタンをクリックしたときに前のページに戻る機能を実装しています。

<!-- 戻るボタン -->
<button onclick="goBack()">戻る</button>

<script>
function goBack() {
  window.history.back(); // ブラウザの履歴を1つ戻る
}
</script>

このコードでは、HTMLとJavaScriptを使って戻るボタンを作成しています。

ボタンがクリックされると、JavaScriptの”window.history.back()”関数が呼び出され、ブラウザの履歴を1つ戻ることで前のページに戻ります。

○サンプルコード2:HTTP_REFERERを利用する方法

次に、PHPの$_SERVER[‘HTTP_REFERER’]を使った前のページに戻る機能のサンプルコードを紹介します。

<?php
$backURL = $_SERVER['HTTP_REFERER']; // 前のページのURLを取得
?>

<!-- 戻るボタン -->
<a href="<?php echo $backURL; ?>">戻る</a>

このコードでは、PHPのスーパーグローバル変数$_SERVER[‘HTTP_REFERER’]を使って、ユーザーが訪れた前のページのURLを取得し、そのURLを戻るボタンのリンク先としています。

○サンプルコード3:セッションを利用する方法

最後に、PHPのセッションを使った前のページに戻る機能のサンプルコードを紹介します。

ここでは、ユーザーが訪れた各ページのURLをセッションに記録し、戻るボタンを押すことで前のページに戻ることができます。

<?php
session_start(); // セッションを開始

// 前のページのURLをセッションに保存
if (!isset($_SESSION['history'])) {
  $_SESSION['history'] = array();
}
array_push($_SESSION['history'], $_SERVER['REQUEST_URI']);

// 戻るボタンを押したときの処理
if (isset($_POST['goBack'])) {
  array_pop($_SESSION['history']); // 最新のページを履歴から削除
  $backURL = end($_SESSION['history']); // 一つ前のページのURLを取得
  header('Location: '.$backURL); // 一つ前のページにリダイレクト
  exit;
}
?>

このコードでは、ユーザーが訪れるたびにそのページのURLをセッションに保存しています。

戻るボタンが押されたときには、最新のページを履歴から削除し、その前のページのURLを取得します。

そのURLにリダイレクトすることで前のページに戻ります。

●これらの方法の応用例

ここでは、前述した各方法を使った具体的な応用例を紹介します。

それぞれの例で取り扱うのは、「ページ遷移履歴の作成」と「特定のページへの戻るボタンの作成」です。

○応用例1:ページ遷移履歴の作成

前のページに戻る機能だけでなく、ユーザーのページ遷移履歴を作成することも可能です。

ここでは、セッションを使った方法でページ遷移履歴を作成するサンプルコードを紹介します。

<?php
session_start(); // セッションを開始

// ページ遷移履歴を保存
if (!isset($_SESSION['history'])) {
  $_SESSION['history'] = array();
}
array_push($_SESSION['history'], $_SERVER['REQUEST_URI']);

// ページ遷移履歴を表示
foreach ($_SESSION['history'] as $url) {
  echo $url . '<br>';
}
?>

このコードでは、セッションを利用してユーザーが訪れたすべてのページのURLを保存し、それらを表示しています。

ユーザーが訪れるたびにそのページのURLを配列に追加し、foreachループを使って履歴を一覧表示します。

○応用例2:特定のページへの戻るボタンの作成

特定のページに戻るためのボタンを作成することも可能です。

ここでは、JavaScriptを利用して、特定のページに戻るボタンの作成するサンプルコードを紹介します。

<!-- 特定のページへ戻るボタン -->
<button onclick="goToPage()">特定のページへ戻る</button>

<script>
function goToPage() {
  window.location.href = 'http://example.com'; // ここに戻りたいページのURLを指定
}
</script>

このコードでは、ボタンがクリックされると指定したURLのページに遷移するJavaScriptの関数を呼び出しています。

この場合、ボタンをクリックすると’http://example.com‘というURLのページに直接遷移します。

●注意点と対処法

これらの方法を使用する際にはいくつかの注意点があります。

例えば、HTTP_REFERERはユーザーのブラウザやプロキシ設定によっては取得できない場合があること、JavaScriptはユーザー側で無効にされている可能性があることなどを考慮する必要があります。

また、セッションを使用する場合には、セッションの寿命管理が重要となります。

不要になったセッション情報は適切に削除し、セキュリティ対策も怠らないようにしましょう。

まとめ

この記事では、PHPで前のページに戻る方法とその応用例について解説しました。

JavaScript、HTTP_REFERER、セッションの各方法を理解し、必要に応じて適切な方法を選択して使用しましょう。

また、それぞれの方法の特性や注意点を理解することも重要です。

これらの知識を活用して、ユーザーフレンドリーなウェブサイトを作成してください。