PHPセッションの使い方 | PHPやります!PHPでスクリプト/CGI作ります!

PHPセッションの使い方

ログイン機能を作る前に、PHPセッションの使い方です。

使うのは、下記の2つ。たった2つ。
session_start
session_destroy

環境によっては、クッキーも使うのでプラスαで3つ。
ini_get
session_get_cookie_params
setcookie

でわ、それぞれの説明。
1.session_start
セッションデータを初期化します。
セッション変数を作成、または復帰させます。
要は、セッション変数を扱うスクリプトの一番最初に呼び出せってことです。

2.session_destroy
セッションに登録されたデータをすべて破棄します。
すでに作成されたセッション変数を初期化します。
使い終わったら初期化するってことです。
ログアウト処理なんかで使うのが一般的な使い方だと思います。

3.ini_get
PHPの設定ファイルから設定された値を取得します。
下の例でわ、session.use_cookiesの値を取得しています。

4.session_get_cookie_params
セッションクッキーのパラメータを取得します。
取得出来るパラメータは以下のとおり。
lifetime クッキーの有効期限
path 情報が保存されている場所のパス
domain クッキーのドメイン
secure セキュアな接続でのみ送信される。
httponly HTTPを通してのみアクセス可能となる。

secureとhttponlyってなんだかよくわかんないですね・・・

5.setcookie
クッキーを送信する
PHPはsessionを使うとcookieも送信するようです。
そのcookieを設定します。
下の例では、送信するcookieを初期化するために使用しています。
例を見ると cookieが送信されていることがわかります。

でわ、sessionを使ったサンプルです。
<body>
<h1>現在のsession変数一覧</h1>
<?php

$t = time();
session_start();
$_SESSION['hoge'] = $t;

echo $t;
?>
を<font color="red">$_SESSION['hoge']</font>に保存しました。<br />
<br />

<a href="session.php">保存されていることを確認する</a>

</body>

index.php
PHPやります!PHPでスクリプト/CGI作ります!

<body>
<h2>保存されているsession変数一覧</h2>
<?php

session_start();
foreach ($_SESSION as $key => $s)
{
echo "[$key] <font color=\"red\">$s</font>\n";
}
?>

<h2>保存されているcookie変数一覧</h2>
<?php
foreach ($_COOKIE as $key => $c)
{
echo "[$key] <font color=\"blue\">$c</font>\n";
}

?>
<br />
<br />

<a href="close.php">session変数を削除する</a>

</body>

session.php
PHPやります!PHPでスクリプト/CGI作ります!



<body>
<h1>session変数を削除しました</h1>
<?php

session_start();

if (ini_get("session.use_cookies"))
{
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}

session_destroy();

?>

<a href="session.php">削除されていることを確認する</a>

</body>

close.php
PHPやります!PHPでスクリプト/CGI作ります!


session.php
PHPやります!PHPでスクリプト/CGI作ります!