[PHP-users 9471] Re: header()を使用したフレーム全体のリロード

Tadashi Oh-Ya php-users@php.gr.jp
Sat, 24 Aug 2002 10:09:43 +0900


おおやです。
みなさま回答ありがとうございました。

一応自己解決できたようなので報告します。

From: Tadashi Oh-Ya <toy@k-cable.co.jp>
Subject: [PHP-users 9463] header()を使用したフレーム全体のリロード
Date: Fri, 23 Aug 2002 20:04:12 +0900

> 下記のコードを書いてみたのですが、ログイン終了時に下部フレームの中
> で新たにフレームが分割されて表示されてしまいました。
>
先回試作しましたコードでは、phplib/loginform.ihtmlの終了時に
 ・下部フレームが新たな親フレームとして扱われる。
 ・新たな親フレーム内において、全体をリロードするLocationヘッ
   ダが働くため、フレーム構造が入れ子になる。
という状況になっていると考えました。

そこで、
 ・phplib/loginform.ihtmlの実行終了時に(つまりログイン作業終
   了時に)表示の基準位置を親フレームに移動させておく。
 ・その後コンテンツそのものが表示される際に、フレーム全体を
   Locationヘッダでリロードする。
という二段階を踏むことにしました。

先回のmainframe.phpとcontents.phpはそのままにして、loginform.ihtml
に以下のように手を加えました。
-----------------------------------------------------------------
<HTML> <!-- phplib/loginform.ihtml -->
  <HEAD>
    <TITLE>Simple Login Form</TITLE>
  </HEAD>
<BODY>
  <FORM ACTION="<?php print $this->url() ?>" TARGET="_top" method="post">
  <!--                              あるいは TARGET="_parent"         -->

  Username:<INPUT TYPE="text" NAME="username">
  Password:<INPUT TYPE="password" NAME="password">
  <INPUT TYPE="submit" NAME="submit" VALUE="Login Now!">
  </FORM>
</BODY>
</HTML>
-----------------------------------------------------------------

 以上の変更で、期待通りの動作をするようになりました。