- ベストアンサー
ログイン画面をはさんだ後、自動でページ移動したい
ログインが必要なページのどこかにアクセスする際、 ログイン状態でなければ、ログイン画面を表示して、 その後本来アクセスしたかったページへ自動でジャンプ するような仕組みを作りたいのですが、これはどうやれば 良いでしょうか? (できればYahoo!のような感じにしたいですが、 PHPだけで実現できる範囲だと助かります)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ログインが必要なページの頭でログインをチェックして(セッションを使うと楽)、ログイン状態でなければログインページにリダイレクトします。この時に、本来の飛び先をGETで渡してあげて、ログイン認証後に再びそこにリダイレクトすればOKです。 if(!$_SESSION["login_flag"]){ header("Location: http://~/login.php?url=[飛び先URL(urlencodeしてね)]"); } こんな感じでチェックしてログインページではinput type=hiddenでurlを渡して、次の画面で認証成功したらurlにリダイレクトする、という感じです。
その他の回答 (1)
- anmochi
- ベストアンサー率65% (1332/2045)
方法としては、次の通りになるだろうな。 1.全ての(ログインが必要な)ページで、ログインされていなければlogin.phpにジャンプする。その際、ログイン後のページをセッションなどに持たせる。 2.login.phpは、ログイン動作を行う。読み込まれた時に既にログインされていれば、セッションなどに持たせたとび先(存在しなければトップかな)にジャンプする。 ジャンプの方法だが、Location HTTPレスポンスヘッダを使うなど、さまざまな方法がありそれぞれ一長一短あるので、これは設計思想によるだろう。
お礼
早速のご回答ありがとうございました。 参考になりました。
お礼
早速のご回答ありがとうございました。 urlencodeというのを、今はじめて知って、さっと 調べてみましたが、これはいつもエンコードした方が 良いのでしょうか? (URLには、半角英数しか入れない予定ですが…)
補足
すいません、よく考えたらスラッシュなどが入りますね。(ボケてしまいました)