この本はwindows向けに書いてありますが、私はmacで以下のような環境を
構築しています
()のなかは書籍に記載されている環境です
仮想OS:VirtualBox(VMWare Player)
解析ツール:HttpFox(Fiddler)
ここからが具体的な質問です
p43からはじまるクッキーとセッション管理について
この節では、クッキーの仕組みを理解するためにあらかじめ用意されたサンプルアプリを使用しました
サンプルアプリにはIDとPASSを入力するログイン画面があり、フォームに入力しログインする過程をTamper Dateで確認します
31-020.phpにアクセスするとレスポンスヘッダからクッキーが指示されるはずなのですが、ヘッダにクッキーの文字はありませんでした
以下が期待されるレスポンスヘッダです(要点のみ)
HTTP/1.1 200 OK
SET-Cookie: PHPSESSIDgg5144avrhmdiaelvh80141b53; path/
しかし私の環境ではレスポンスヘッダは空白でした
その後、ログインをするとレスポンスではなくリクエストヘッダにクッキーが付与されています
なぜレスポンスヘッダにクッキーや他のメッセージが表示されないのでしょうか?
長くなりますが以下がサンプルアプリのプログラムです
31-020.php
lang
1<?php 2 session_start(); // セッションの開始 3?> 4<html> 5<head><title>ログインしてください</title></head> 6<body> 7<form action="31-021.php" method="POST"> 8ユーザ名<input type="TEXT" name="ID"><BR> 9パスワード<input type="PASSWORD" name="PWD"><BR> 10<input type=SUBMIT value="ログイン"> 11</form> 12</body> 13</html>
31-021.php
lang
1<?php 2 session_start(); // セッションの開始 3 $id = $_POST['ID']; 4 $pwd = $_POST['PWD']; 5 // IDとパスワードのどちからかが空の場合はログイン失敗 6 if ($id == '' || $pwd == '') { 7 die('ログイン失敗'); 8 } 9 $_SESSION['ID'] = $id; 10?> 11<html> 12<head><title>ログイン</title></head> 13<body> 14ログイン成功しました 15<a href="31-022.php">プロフィール</a> 16</body> 17</html>
31-022.php
lang
1<?php 2 session_start(); // セッションの開始 3 $id = $_SESSION['ID']; 4 if ($id == '') { 5 die('ログインしてください'); 6 } 7?> 8<html> 9<head><title>プロフィール</title></head> 10<body> 11ユーザID:<?php echo htmlspecialchars($id, ENT_NOQUOTES, 'UTF-8'); ?> 12</body> 13</html>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/05/18 10:48