[PHP-users 18259]Re: PHPLIBのログインフォームを外部に持ちたい
Masato Tanaka
php @ e-linez.com
2003年 10月 4日 (土) 18:24:28 JST
お世話になっております。
おかげさまですっきりしました。
modeをcookieの決めうちにし、fallback_modeを指定しないように運用
仕様と思っています。
吉川さんありがとうございました。
田中
----- Original Message -----
From: "Toshikazu Yoshikawa" <toshi @ uncut00.com>
To: "PHP-users ML" <php-users @ php.gr.jp>
Sent: Saturday, October 04, 2003 2:05 PM
Subject: [PHP-users 18257] Re: PHPLIBのログインフォームを外部に持ちたい
> お世話になっております。
> 吉川@アンカットです。
>
> > 外部フォームからログインしようとしたときは、表示されるページで、
> > POSTを受信できていないことがわかりました。
> > $_POST["username"]、$_POST["password"]を出力したところ空白でした。
> > そのページには、URLにPHPSESSID=xxxxx というのがくっついてきていたので、
> > 勘ですが、Sessionクラスの、$fallback_mode を "get"→""(空白)にしたら
> > POST受信できるようになり、あとは吉川さんからご教授いただいた方法で
> > ログインに成功しました。
>
> fallback_modeのことをコロッと忘れていました。
> 私、いつもクッキーモード決めうちで使用していたので。
>
> お察しの通り、fallback_modeを指定した場合、
> 外部から来る変数は取得できません(POST、GETともに)。
>
> なぜなら、PHPLibでのセッションが開始されるときに、
> fallback_modeが指定されていると、同じページが2回アクセスされるからなんです
ね。
> 1回目のアクセスではセッションIDをクッキーにセットし、
> Locationヘッダーで、もう一度強制的に自分自身にアクセスさせます。
> 2回目のアクセス時に、セットしたはずのクッキーがブラウザから返されなけれ
ば、
> そのブラウザはクッキーがOffになっているものと判断するためです。
>
> クッキーがOffになっていると、セッションIDが失われてしまうため、
> Locationヘッダーで指定するURLに
> PHPSESSID=xxxxxxとしてIDを埋め込み、持ち回らせようとします。
>
> この同じページに2回アクセスというのが、
> 外部から直接POSTできない理由になります。
> 初回は当然受け取っているのですが、Locationヘッダーでもう一度アクセスさせる
ときに
> その外部からのPOST値を引き継いでくれないのです。
>
> もともとこういう利用のされ方は想定されていなかったのでしょう。
> 今回の田中さんの外部フォームからの直接ログインを実現するためには、
> modeでcookieかgetの決めうちにし、fallback_modeを指定しないことが
> 前提になります。
>
> --
> Toshikazu Yoshikawa <toshi @ uncut00.com>
>
> _______________________________________________
> PHP-users mailing list
> PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
>
>
PHP-users メーリングリストの案内