PHPの勉強でセッションについて理解を試みてみた

はじめに

初心者がPHPの勉強をしたのでアウトプットしていく。
とにかく最速でアプリを作るための勉強なので、作りたいものに特化したアウトプットになる。
今回はセッションについて。

セッションとは

セッションとはサーバー側に、一時的にデータを保存する仕組みのこと。
ログイン情報などユーザーに直接紐づくデータを格納する。
Cookieの仕組みと似ているが、Cookieはブラウザ側,、セッションはサーバー側にデータを保存しているという違いがある。
そのため、セッションの方がセキュリティ的に強固だと言われている。

セッションスタート

セッションをスタートさせるにはsession_start関数を使用する。

<? php
 // セッションスタート
 session_start();
?>

セッションにデータを保存するには下記のように記入する。

<?php
session_start();
$_SESSION['name'] = "hogehoge";
?>

これでサーバーへの保存は完了。
ただこれだと本当に保存されているかわからないので、ブラウザ上に取り出してみる。

<?php
session_start();
$_SESSION['name'] = "hogehoge";
echo $_SESSION['name'] ;
?>

ブラウザ上に「hogehoge」と表示される。
無事に保存されていることを確認できた。

セッションはサーバー側の管理なので、違うページにまたがっても同じセッションを取り出すことが可能。
試しに別ファイルsession.phpを作成し下記のように記述してみると、

<?php
session_start();
echo $_SESSION['name'] ;
?>

先ほどのファイル同様に「hogehoge」と表示される。
別ページに関わらず再度代入する必要がないことがわかる。

保存したセッションを削除する

削除にはunsetを使用する。

<?php
session_start();
$_SESSION['name'] = "hogehoge";
unset($_SESSION['name']);
echo $_SESSION['name'] ;
?>

上記のようにunset($_SESSION['name']);を記述することでセッションを削除できる。
結果「Notice: Undefined index: name in ~~~」とエラーが表示される。
当然、先ほど作ったsession.phpにも同様のエラーが表示される。