一人のユーザーが複数のウェブページからできているサイトを
利用することがあります。その場合、セッションに関する情報を複数の
ページで共有することができます。
サンプルコードの実行結果はこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<?php session_start(); ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>$_SESSIONを使ってユーザー管理をしてみる</title> <link rel="stylesheet" href="../style.css"> </head> <body> <?php if( !isset( $_SESSION["date"] ) ){ $_SESSION["date"] = date("h:i:s"); echo "ようこそ<br>"; }else{ $_SESSION["count"]++; echo "入店時間:" . $_SESSION["date"] . "に入店しました。<br>"; } echo "<a href=\"index2.php\">奥の部屋へどうぞ。</a>" ?> </body> </html> |
上記のサンプルコードの説明:
・入店時間を記録するサンプルコードですが、
初来店時(=入店時間がない時)ときは、初来店時限定の
メッセージを出力し、2回目以降は来店時間を表示します。
サンプルコードの実行結果はこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php session_start(); ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>$_SESSIONを使ってユーザー管理をしてみる</title> <link rel="stylesheet" href="../style.css"> </head> <body> <?php //index.phpで時間が設定されているか判定 if( !isset( $_SESSION["date"] ) ){ echo "<a href=\"index.php\">こちらから入店してください。</a><br>"; }else{ echo $_SESSION["date"] . "に来店済み<br>"; } ?> </body> </html> |
上記のサンプルコードの説明:
・index.phpにて入店時間を取得しているか否かで
表示するメッセージを変更しています。入店済なら入店時間を
入店記録がない場合はindex.phpへ遷移するリンクを表示します。
2つのPHPファイルの説明
index.phpとindex2.phpという2つのウェブページを用意しています。
index.phpをクリックすると、「ようこそ」というメッセージを表示し、
$_SESSION["date"]に入店時間を記録し、表示されるリンクをクリックすると、
index2.phpに遷移します。そこでindex.phpで記録した入店時間が表示されます。
セッションを操作
セッションを操作することができます。セッションを破棄するには、
session_destroy()関数を使います。ただ、
この関数だけでは、$_SESSIONの値は破棄されないので、
セッションを完全に破棄するには$_SESSIONを空にします。
$_SESSION = array();
session_destroy();