index

2001年 1月
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 27 28
29 30 31        
2001年 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 25
26 27 28        
2001年 3月
      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 27 28 29 30 31  

アレ

  ▽20010214b #日記

 えぇと,PHPLIB の続き. 認証が必要なページの頭に page_open() を差し込むだけでおっけーなのですな.

 といいつつ,認証まわりでトラブったり. PHPLIB の認識しているログインページと実際に使うログインページが違う (HTML 自体は同じなんだけどフレームだから違う扱い)ので, 初回のログインの時点で未ログインなためにログイン要求を出されてしまうのであった.

 で,PHPLIB にはこういう時のために auth_preauth() という機構が用意されていて, これを使うと正規の認証手続きの前に独自の方式で認証を行なったことにできて, 独自のログインページの中でこれを行なうことで目的を果たせるのだ.

 と思ったら,どういうわけか auth_preauth() に処理が渡る段階で, ログインページから入力したフォーム変数が消えうせていたりするのだな. なんでだろーか... デバッグ出力を死ぬほど入れて調べたら, どうも 2回ページを読みに行っているように見える. ていうか apache のログを見ると,最初に POST した後に, セッション ID を持って GET に来ているみたい. セッション ID が発行されてるってことは, PHPLIB のセッション機能を経由してはいるってことだよなーとか思いつつ, セッション管理部分で「Cookie を持ってない客の時は 302 を返して再 GET させる」 とゆーロジックを発見. フツーに Location で別ページに飛ばすとブラウザは再 POST するもんだと思ってたんだけど, 302 だと再 GET になってしまうのかな?  うーん...

 とりあえず GET によるデータ取得禁止で完全 Cookie オンリーにしたら動いたけど. まぁどちらにしても今の設計だと Cookie 前提だからいいんだけど, 個人的に Cookie って好きでないので,これは何とかしたいところ...

index