[PHP-users 9463] header()を使用したフレーム全体のリロード
Tadashi Oh-Ya
php-users@php.gr.jp
Fri, 23 Aug 2002 20:04:12 +0900
おおやと申します。
どちらかと言えばHTMLの話になるのですが...
header()を使用してフレーム全体をリロードすることは可能なのでしょうか?
目的としては、
・phplibによるログイン情報を画面上部のメニュー部分に
表示させておきたい。(利便性のため)
・初回のログイン作業は画面下部のbody部分で行ないたい。(見栄えのため)
・初回ログイン終了時に即座に上部メニュー画面にログイン情報を
反映したい。(利便性のため)
の三点があります。
そのためにはフレーム全体を初回に一回だけリロードできれば良いと考え、
下記のコードを書いてみたのですが、ログイン終了時に下部フレームの中
で新たにフレームが分割されて表示されてしまいました。
他には phplibで使用するloginform.ihtmlのフォームタグの中で TARGET=_top
としてみたり、header("Location: mainframe.php TARGET=_top")として
みたりしましたが、いずれも成功しませんでした。
-----------------------------------------------------------------
<?php //mainframe.php
include("prepend.php");
page_open(array("sess" => "HOGE_Session"));
if (!isset($init)){ $init = ""; }
$sess->register("init");
print("<FRAMESET ROWS=\"20%, 80%\">");
print("<FRAME NAME=\"menu\" SRC=\""
. $sess->url("./contents.php?dsp_mode=menu")
. "\">");
print("<FRAME NAME=\"body\" SRC=\""
. $sess->url("./contents.php?dsp_mode=body")
. "\">");
print("</FRAMESET>");
page_close();
?>
-----------------------------------------------------------------
-----------------------------------------------------------------
<?php //contents.php
include("prepend.php");
if($dsp_mode == "menu"){ // メニュー表示
page_open(array("sess" => "KCN_Session"));
print("ここはMENU<BR>");
print("現在ログインしているユーザ名は " . $auth->auth["uname"] . "<BR>");
}
if($dsp_mode == "body"){ // ボディ表示
page_open(array("sess" => "KCN_Session",
"auth" => "KCN_Auth",
"perm" => "KCN_Perm"));
$sess->register(init);
if($init == ""){ // セッションの中で最初の表示ならば、
$init = "done";
$locstr = "Location: " . $sess->url("./mainframe.php");
header($locstr); // フレーム全体を一回だけリロードしたい。
}
print("ここはBODY<BR>");
}
page_close();
?>
-----------------------------------------------------------------