2008/7/15 久米
| ブラウザ | Webサーバ | |
| こんにちは田中です。 | → | |
| ← | いらっしゃいませ田中様。 | |
| いいお天気ですね。 | → | |
| ← | はじめましてどちら様ですか? | |
| 田中ですが。 | → | |
| ← | いらっしゃいませ田中様。 | |
| このみたらしだんご3本ください。 | → | |
| ← | ありがとうございます。どちら様ですか? | |
| がーーん。 | → | |
| ← | どちら様ですか? | 
| ブラウザ | Webサーバ | |
| こんにちは田中です。 | → | |
| ← | いらっしゃいませ田中様。 (整理券3808番を渡す)  | 
  |
|  いいお天気ですね。 (整理券3808番を見せる)  | 
    → | |
| ← |  (整理券3808番を確認) どぴーかんですね田中様。  | 
  |
| このみたらしだんご3本ください。 (整理券3808番を見せる)  | 
    → | |
| ← |  (整理券3808番を確認) ありがとうございます田中様。 (みたらしだんご3個をメモ)  | 
  |
| イチゴのショートケーキ1つください。 (整理券3808番を見せる)  | 
    → | |
| ← |  (整理券3808番を確認) ありがとうございます田中様。 (イチゴのショートケーキ1つをメモ)  | 
  |
| おいくらですか。 (整理券3808番を見せる)  | 
    → | |
| ← |  (整理券3808番を確認) (メモを確認) ありがとうございます田中様。 合計300円です。  | 
  
セッション管理機能を使うと、複数のページにわたって特定の情報を維持し続けることができます。
セッション管理は次の2つで実現できます。参照 PHPセッション管理
| 1 | セッション管理を使用するページに下記を記述する。  | 
     
<?php
    session_start();
?>
 | 
  
| 2 | セッション管理中に複数のページにまたがって  | 
    
<?php
    session_start();
    $_SESSION['username'] = $_POST['username'];
?>
<?php
    $_SESSION['username'] = $name;
    print "<p>いらっしゃいませ。".$_SESSION['username']."様</p>";
?>
 | 
  
では、試してみましょう。
| session1.htm | <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>session1</title> </head> <body> <h1>銀座コージーコージー</h1> <form method="post" action="session2.php"> 名前:<input type="text" name="username"> <input type="submit" name="sub" value="お店に入る"> </form> </body> </html>  | 
  
| session2.php | 
<?php
    session_start();
    $_SESSION['username'] = $_POST['username'];
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>session2</title>
</head>
<body>
<h1>銀座コージーコージー</h1>
<?php
    print "<p>いらっしゃいませ。".$_SESSION['username']."様</p>";
?>
<form method="post" action="session3.php">
みたらしだんご <select name="mitarashi">
    <option value="0" selected>何本?</option>
    <option value="1">1本</option>
    <option value="2">2本</option>
    <option value="3">3本</option>
  </select><br><br>
<input type="submit" name="sub" value="買う">
</form>
</body>
</html>
 | 
  
| session3.php | 
<?php
    session_start();
    $_SESSION['mitarashi'] = $_POST['mitarashi'];
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>session3</title>
</head>
<body>
<h1>銀座コージーコージー</h1>
<?php
    print "<p>ありがとうございます。".$_SESSION['username']."様</p>";
?>
<p>おいしいショートケーキもありますよ。</p>
<form method="post" action="session4.php">
イチゴのショートケーキ <select name="ichigo">
    <option value="0" selected>何個?</option>
    <option value="1">1個</option>
    <option value="2">2個</option>
    <option value="3">3個</option>
  </select><br><br>
<input type="submit" name="sub" value="買う">
</form>
</body>
</html>
 | 
  
| session4.php | 
<?php
    session_start();
    $_SESSION['ichigo'] = $_POST['ichigo'];
    
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>session4</title>
</head>
<body>
<h1>銀座コージーコージー</h1>
<?php
    print "<p>ありがとうございます。".$_SESSION['username']."様</p>";
?>
<p><a href="session5.php">おいくらですかと聞く</a></p>
</body>
</html>
 | 
  
| session5.php | 
<?php
    session_start();
    $gokei=$_SESSION['mitarashi']*40+$_SESSION['ichigo']*180;
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>session5</title>
</head>
<body>
<h1>銀座コージーコージー</h1>
<?php
    print "<p>ありがとうございます。".$_SESSION['username']."様</p>";
    print "<p>合計 ".$gokei."円です。</p>";
    $_SESSION=array();
    session_destroy();
?>
</body>
</html>
 | 
  
※最後の2行はサーバ側のセッションデータを棄却するスクリプトです。
  $_SESSION=array(); 
  session_destroy(); 
  セッションデータを使わなくなったら、削除しておいた方がベターです。
  手動で棄却しなくても、いつか自動的に削除されますが。
 コラム1 セッション変数セッション管理中に変数を共有する方法には、次の2種類があります。 
 PHPで推奨されているのは、$_SESSIONの方法です。そのため、本講義では、$_SESSIONの方法を使用します。 参照:PHPマニュアルより抜粋「セキュリティとコードの可読性のために$_SESSIONの使用 が推奨されます。 
 コラム2 セッションデータはどこに格納? C:\Windows\php.iniに書かれている設定によります。 使われなくなったセッションデータは、デフォルトでは、 
 コラム3 携帯はクッキーが使えない携帯でセッション管理を実現する方法は下記の2つです。 
 
 コラム4 クッキー無効にしている人の対策
 
 
  |