「セッション」は、変数のように値を同一サイト内で共有できます。ログインなどで、ページを開くたびにデータベースにアクセスし認証すると負荷が高いため、ログイン完了したなどの値を持たす場合がある。
機能概要
注意点
小規模システム(サイト)などの場合、同一サーバ内での運用となるため、問題は発生しづらい。ただ、大規模システムになった場合、複数サーバで運用することがあるため、セッショントラブルが発生したり、セッションが取得できないなどが考えられます。
プログラミングコード
「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>
演習問題
- 上記のコードを使用して、ファイル作成し、動作するようにしてみよう。
- 前単元で学習した、ログインページにセッションを組み込み、システムやサイトにセキュリティを施してみよう。