0

私は素晴らしい動作をするスタディlogout.phpファイルを持っていますが、私が直面している問題は、フレームセット内の4つのフレーム(ヘッダー、左、中央、右)を使用する新しい「イントラネットスタイル」の管理サイトにスクリプトを配置することです。

満たす必要のある2つの要件があり、解決策を見つけるのに非常に苦労しています(はい、フレームは今日の消費者向けサイトには適していませんが、繰り返しになりますが、これはウィジェットがどこにでもある内部システム管理パネル用です)。

  1. ユーザーがトップフレームの[ログアウト]ボタンをクリックすると、ページ全体がlogout.phpに転送され、logout.phpは単一のページ「home.php」にリダイレクトします。今のところ、ログアウトを押すと、その特定のフレームだけが目的の宛先に移動します。

  2. ユーザーがログインすると、SESSION変数が作成され、trueに設定されます。SESSION [validated] = trueを指定せずにページにアクセスした場合、ユーザーはログアウトされます。上記と同様に、これが発生した場合は、logout.phpに向けられたフレームセット全体が必要です。

私はjavascriptなしでこれを達成しようとしています(これは明らかに単に無効にすることができ、JSはセキュリティの真の手段ではないため)。

過去にこの問題に取り組んだ人はいますか?

4

2 に答える 2

3

ログアウトボタンはリンクですか?もしそうならtarget="_parent"、フレームセットでページを変更するために使用できませんか?

編集
Re #2: セッションがタイムアウトした場合、使用するリンクとtarget=_parent以下の JavaScript を含む中間ページを作成できます。どちらもフレームから外れます。

<script type="text/javascript">
if (top.location != self.location) top.location = 'login.php'
</script>

これは良いことです。なぜなら、JavaScript が有効になっていても気づかず、そうでない場合でもフレームから抜け出してしまうからです。

于 2010-11-05T05:04:05.057 に答える
0

パート 1 の解決策:

次のようなログアウト ボタンを作成します。

<a href="/logout.php" target="_top">logout</a>

次に、logout.php にログアウトのためのすべてのハードワークを実行させ (おそらくセッションをクリアするだけです)、ユーザーを適切なフレームセットにリダイレクトします (リダイレクトには PHP のヘッダー コマンドを使用します)。

パート 2 の解決策:

これはランダムに発生するべきではありません。ログインすると、セッションは validated = true に設定されます。セッションがたまたま別のページに「遭遇」することはありません。

ただし、セッションが何らかの形で無効化された場合にログアウト ページにリダイレクトするために、PHP ファイルを含めることができます (または、そうするのに十分賢い場合は、単一のエントリ ポイントでこれを行います)。上記の 1 を参照してください。

于 2010-11-05T12:01:04.413 に答える