2

PHPを使用して、どうすればこれを達成できますか? 元:

1.)全部で 5 ページ (A、B、C、D、E) としましょう。どのユーザーも (ログインまたはログアウトして) 表示できます。

2.)ユーザー X はページ (C) を表示しており、ログインしていません。

3.)ユーザー X がページ (C) にログインし、ホームページにリダイレクトされるのではなく、表示しているのと同じページ (C) にログインします。

ユーザーが任意のページにログインしたときにユーザーがホームページにリダイレクトされる場所を作成する方法は知っていますが、これは望ましくなく、ユーザーが望んでいないものです-すべてのユーザーがログインできる場所が欲しいですリダイレクトされるのではなく、そのページにとどまります。

これは、ユーザーがログインしてリダイレクトするために私が持っているものですが、ユーザーがログイン時に表示しているページにとどまることができるようにする方法がわかりません。

PHP

header("Location: index.php");

ユーザーがログイン時に表示中のページにとどまることができるようにするために、さらに必要なことはありますか? または、上記の1行のコードだけでは見つけられないように見える、これに対する簡単な解決策はありますか?

たくさんのチュートリアル/ブログ/フォーラムなどを読みましたが、どこにも明確な答えが見つかりませんでした. 私は「PHP_SELF」に出くわしましたが、それを実装する方法がまったくわかりません.php.netには、それを使用する方法に対する明確な解決策がありません-(または少なくとも私が読んだものから)...どんな助けでも感謝します。

解決済み: --> ご協力ありがとうございます Thinkswan

$current_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
header("Location: $current_url");

更新: --> 最初の質問に由来する質問

上記で正しい形式として提供したものから、それをもう少し進めることができますか? 例えば:

前述と同じルールが適用されます。

1.)ユーザー X が現在ページ (C) にログインしておらず、ページ (C) の URL が を読み取りhttp://www.example.com/members.php、そのページでクリックした div コンテナーがあるとします。別のより大きな div コンテナーが開きます。

2.)そのうちの URL は現在読み取り中ですhttp://www.example.com/members.php#registered_members

3.)それが開いている間に、ユーザー X はログインすることにしました。ユーザー X がログインすると、大きな div コンテナーが開いたまま同じページにとどまるようにする方法はありますか? 現時点では、ユーザー X がログインすると div コンテナーが折りたたまれますが、IS は同じページにログインしています。

4

2 に答える 2

3

を活用できます$_SERVER['REQUEST_URI']

例:

$current_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
header("Location: $current_url");

修正された質問への回答:

フラグメント識別子#registered_membersと呼ばれる URLの部分は、サーバーに送信されることはなく、クライアント側のみです。そのため、PHP は存在すら認識しません。

ただし、ページのリロード時に JavaScript を使用して確認し、存在するかどうかに基づいてページを更新できます。

<script>alert(window.location.hash);</script>
于 2013-10-06T17:56:27.063 に答える
1

すべてのフォームから同じログイン ページを含めたり呼び出したりする場合、できることは 1 つです。セッション変数で現在のページの URL を取得し、そのページにリダイレクトするだけです。

于 2013-10-06T17:58:27.737 に答える