• ベストアンサー

ログイン画面をはさんだ後、自動でページ移動したい

ログインが必要なページのどこかにアクセスする際、 ログイン状態でなければ、ログイン画面を表示して、 その後本来アクセスしたかったページへ自動でジャンプ するような仕組みを作りたいのですが、これはどうやれば 良いでしょうか? (できればYahoo!のような感じにしたいですが、 PHPだけで実現できる範囲だと助かります)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

ログインが必要なページの頭でログインをチェックして(セッションを使うと楽)、ログイン状態でなければログインページにリダイレクトします。この時に、本来の飛び先をGETで渡してあげて、ログイン認証後に再びそこにリダイレクトすればOKです。 if(!$_SESSION["login_flag"]){ header("Location: http://~/login.php?url=[飛び先URL(urlencodeしてね)]"); } こんな感じでチェックしてログインページではinput type=hiddenでurlを渡して、次の画面で認証成功したらurlにリダイレクトする、という感じです。

orenge_mint
質問者

お礼

早速のご回答ありがとうございました。 urlencodeというのを、今はじめて知って、さっと 調べてみましたが、これはいつもエンコードした方が 良いのでしょうか? (URLには、半角英数しか入れない予定ですが…)

orenge_mint
質問者

補足

すいません、よく考えたらスラッシュなどが入りますね。(ボケてしまいました)

その他の回答 (1)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 方法としては、次の通りになるだろうな。 1.全ての(ログインが必要な)ページで、ログインされていなければlogin.phpにジャンプする。その際、ログイン後のページをセッションなどに持たせる。 2.login.phpは、ログイン動作を行う。読み込まれた時に既にログインされていれば、セッションなどに持たせたとび先(存在しなければトップかな)にジャンプする。  ジャンプの方法だが、Location HTTPレスポンスヘッダを使うなど、さまざまな方法がありそれぞれ一長一短あるので、これは設計思想によるだろう。

orenge_mint
質問者

お礼

早速のご回答ありがとうございました。 参考になりました。

関連するQ&A