機能概要

「セッション」は、変数のように値を同一サイト内で共有できます。ログインなどで、ページを開くたびにデータベースにアクセスし認証すると負荷が高いため、ログイン完了したなどの値を持たす場合がある。

注意点

小規模システム(サイト)などの場合、同一サーバ内での運用となるため、問題は発生しづらい。ただ、大規模システムになった場合、複数サーバで運用することがあるため、セッショントラブルが発生したり、セッションが取得できないなどが考えられます。

プログラミングコード

「session_start.php」セッション開始ページファイル

  • 2行目:「session_start()」は、セッションを利用する場合には必ず記述します。
  • 5行目:「user_no」というセッションに値をセットします。(基本的には、通常の変数と同じように代入します)
  • 13行目:echoを利用して、セッションの値を出力しています。
<?php
session_start();

//変数をセッションに登録
$_SESSION['user_no'] = '1';
?>

<html>
<body>
    セッション「user_no」:
    <?php
    //セッションを読み込み変数を呼び出す
    echo $_SESSION['user_no'];
    ?><br>
    <a href="session_next.php">次のページでチェック</a>
</body>
</html>

「session_next.php」セッション確認ページファイル

  • 2行目:「session_start()」は、セッションを利用する場合には必ず記述します。
  • 10行目:「isset」を利用し、セッションの中に値があるかどうかをチェックしています。ある場合には、「true」を返します。
<?php
session_start();
?>

<html>
<body>

<?php

if (isset($_SESSION['user_no'])) {
    echo $_SESSION['user_no'].":値を引き継ぎました。";
    echo "<a href='session_delete.php'>セッション値削除ページ</a>";
} else {
    echo "セッション値は空です。";
}

?>
</body>
</html>

「session_delete.php」セッション削除ページファイル

  • 2行目:「session_start()」は、セッションを利用する場合には必ず記述します。
  • 5行目:「unset」で、セッションの値を削除します。
    ログアウト/ログオフなどで、利用することが可能です。
<?php
session_start();

//セッションを削除
unset($_SESSION['user_no']);
?>

<html>
<body>
    セッション値を削除しました。
    <br><br>
    <a href="session_next.php">nextのページでチェック</a> | 
    <a href="session_start.php">TOPセッション登録</a><br>
</body>
</html>

演習問題

  1. 上記のコードを使用して、ファイル作成し、動作するようにしてみよう。
  2. 前単元で学習した、ログインページにセッションを組み込み、システムやサイトにセキュリティを施してみよう。