PHP の変数はページがリロードされると、値はクリアされてしまいます。
PHP のセッションを使うって、セッション変数の中にデータを入れることで
ブラウザのページを更新しても、他のページに移動してもデータを保持することができます。
ここでは、PHP におけるセッションの利用についてまとめています。
セッションとは
セッションとは、1人のユーザがページを移動している間、
そのユーザのアクセス情報をユーザごとに保存したまま移動できる仕組みです。
セッションはユーザのアクセスごとに「セッションID」を作り、
その ID ごとに情報をサーバに保存しています。
セッションID は、ユーザのクッキーや、リンク、ポストされる URL に付加されて
ページを移動しても引き継げるようになっています。
参考
クッキーについては「Cookie の利用」にまとめています。
セッションを使った PHP プログラミング
PHP でセッションを利用するには、以下の 2 つのことを知っておく必要があります。
- スーパーグローバル変数 $_SESSION を使う
- PHP 組込み関数 session_start() を呼出して明示的に利用を示す
参考
変数・スーパーグローバル変数については「変数の使い方」にまとめています。
スーパーグローバル変数「$_SESSION」
セッション用の情報を移動先のページへ持ち運ぶのに、「$_SESSION」を使います。
セッション変数の使い方
$_SESSION["キー"] = 代入する値;
例えば、「$_SESSIOIN["username"] = "sanachan";」でセッション変数に値が代入されます。
$_SESSION は、配列データを代入することも可能です。
セッションに配列を保存する例
$_SESSION["sample"] = array("sanachan", "php", "session");
echo $_SESSION["sample"][1]; // "php" が出力される
セッションを利用する明示的な記述「session_start()」
PHP では「このページでセッション機能を使います!」という明示的な記述が必要です。
それを行うのが PHP 組込み関数である「session_start()」です。
セッションを有効にする関数
session_start();
session_start() は、HTML 出力の前に記述する必要があります。
つまり、<html> タグを出力するよりも前に呼び出す必要があります。
注意ポイント
<html>タグの出力より後に記述すると、PHP はエラーを出力して処理が停止します。
セッションを使ったサンプル
まずは、セッションに値を保存するプログラムサンプルです。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php session_start(); ?> <html> <head><title>セッションの利用</title></head> <body> <?php $_SESSION["name"] = "sanachan"; ?> <a href="session_confirm.php">確認ページ</a><br /> </body> </html> |
セッションに保存されたかを確認するページのサンプルです。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php session_start(); ?> <html> <head><title>セッション確認ページ</title></head> <body> <?php echo "私の名前は" . $_SESSION["name"] . "です"; echo "<br />"; ?> </body> </html> |