2011-01-19 12 views
1

PHPとZendフレームワークを使用しています。ページリダイレクト - ログイン後 - バックスペース - ログインページへ!どうして?セッションもあります

インデックスページにログインフォームがあります。 ロギング後、セッションをチェックすると、myprofileページにリダイレクトされます。 インデックスページURLを直接入力しようとするとログインした後、 myprofileページにリダイレクトされます。

しかし、myprofileページのバックスペースでは、インデックスログインページに戻ります! なぜですか?セッションがあっても、バックスペースでログインページにアクセスできます。 それは起こるべきではありません。 しかし、ログインページを更新すると、プロフィールページに戻ります。

誰かが私に行方不明を伝えることはできますか? Backspceボタンの問題を解決する方法を教えてください。 私はリダイレクトするためにPHPヘッダーを使用しています。

+0

input/textarea要素がフォーカスされていない限り、バックスペースキーは元に戻ります。これはほとんどのブラウザに共通しており、この動作を抑止しようとしてはいけません。 – meagar

+0

@meagarバックスペースの動作を抑制しようとしていませんが、バックスペースのプロファイルページに戻ってきます。そのリダイレクトはバックスペースでしか起こっていません。それが問題です。バックスペースでは、フォームはロードされますか?バックスペースでセッションチェックが失敗するのはなぜですか? – zod

+0

前のページがブラウザキャッシュから読み込まれます。 – meagar

答えて

1

バックスペースを押すか、「戻る」の矢印をクリックするか、必ずしも新しいリクエストを引き起こすとは限りません。以前のURLはキャッシュに保持され、復元されます。

POSTには、とにかくページがありません。

+0

gmailやhotmailのようなメールをロギングする場合は、受信ボックスに戻ってからbackspaceを押すと、page.itが更新され、ログインページに戻りません。それはどうやって! – zod

+0

@zodこれらのサイトは、ページが部分的にしか更新されておらず、新しい「新鮮な」リクエストが行われない、いわゆる「Web 2.0」技術の*過剰な使用を行います。 –

1

ログインページでPOSTリクエストが行われていることを確認してください。

再生:Cache-controlログインページのヘッダー;おそらくno-cacheに設定すると、他に何も役立たない場合に役立ちます。

0

別の解決方法は、リダイレクトを実行する新しいページに投稿することです。この方法で、ユーザーが戻るボタンを押すと、最初にそれらをリダイレクトするためのページに戻ります。

loginredirect.phpへのデフォルト投稿、log​​inredirect.phpがプライマリページにリダイレクトされます。 ユーザーがヒットした場合は、それを転送するように設定されているloginredirect.phpに戻ります。

0

ログインページを読み込むと、セッションも消去される可能性があります。それは同時にログアウトスクリプトかもしれません。

関連する問題