• ベストアンサー

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

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

  • PHP
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
回答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

  • 自動でメールを送信

    直接phpにユーザーがアクセスしない状況でメールを自動送信するものを作成したいのですが、どのようなもので実現できるのか分からないのでこちらで質問させていただきました。 具体的に例を挙げますと、オンラインレンタルショップで、ユーザーが延滞した際に、自動でその旨のメールを送信するというものです。 ユーザーがログインした際にメールを送るということなら可能だと思いますが、それだとログインしない限り、メールが送信されないので、phpにユーザーが直接phpにアクセスしなくてもメールが送信されるようなしくみが作りたいのです。 分かる方がいらっしゃいましたら、よろしくお願いします。

    • 締切済み
    • PHP
  • 自動ログインされない

    最近、yahoo!やmixiで自動ログインするにチェックを入れても自動ログインされません。 yahoo!に至ってはtop画面中段左に登録したお気に入り(路線案内、翻訳など)もクリアされてしまいます。 これはなぜなんでしょうか?

  • Webページの自動ログイン

    職業上ふと気になって試してみたことなのですが、 mixiで試してみたことなのでそれで話を進めます。 1.Firefoxからmixiログイン画面にアクセスし自動ログインにチェックしてログインしておきます。 2.IEからmixiログイン画面にアクセスし「パスワードを忘れた方はこちら」でパスワード変更し、ログインします。 3.Firefoxを一度閉じてからもう一度mixiを開きます。 上記を実行した結果、3で自動ログインできてしまいます。 Firefoxのcookieには古いパスワードが保存されているはずなのになぜログインできてしまうのでしょうか。 もしかしたらものすごい勘違いをしているかもしれませんが、 なぜこのようなことが起こるのかどなたか教えていただけないでしょうか。

  • ログイン画面

    Yahoo!のログイン画面にある「次回からIDの入力を省略」というやつなのですが、この仕組みはどのようになっているのでしょうか? 現在作っているWebコンテンツで同様の機能をつけられないかと思い調べているのですが、その仕組みが分かりません。 どなたかご存知でしたらお教えいただけないでしょうか。よろしくお願いします。

  • URLの変わらないページをPHPでつくるには

    URLの変わらないページをたまにみかけますが、どういう仕組みになっているのでしょうか? 仮にこういうURLでアクセスしたとして、 http://host.com/saite1/index.php 実行したら http://host.com/saite1/ に変わる 何か機能のボタンを押して画面の表現が変わっても URLは http://host.com/saite1/ 一連の同じ機能範囲の動作は常に同じURLになっているWEBページをたまにみかけます。 これはどのような仕組みになっているのでしょうか? PHPでそれは実現できるのでしょうか? また、「あーそれ、・・・だからやんない方がいいよ」的な意見もよろしくお願いします。

    • ベストアンサー
    • PHP
  • 携帯電話の自動ログインについて

    twitterやtwitbeamなどのサイトは一度ログインすると次ページにアクセスした時自動でログインしますがどういう仕組みになっているのでしょうか? ふとセキュリティ面などの観点から気になったので質問致しました。 回答を頂けると幸いです。宜しくお願いします。

  • 携帯で、phpページからhtmlページへジャンプ

    携帯で、phpのページにアクセスすると、htmlページへ自動ジャンプさせたい keitai.phpにアクセスすると 別サーバーの http://〇〇〇.com/〇〇〇.html にジャンプさせる方法ありますでしょうか? ↓このタグの方法では携帯が自動的にジャンプできないです。 <meta http-equiv="Refresh" content="0;URL= ジャンプさせたいアドレス"> さまざまな検索しましたが、答えがありません。すごく困っています。 ご存知の方いらっしゃいましたら ご教授お願い致しますm(_ _)m

    • ベストアンサー
    • PHP
  • ページを開くと自動的に指定のウィンドウサイズにしたいのですが

    ページにアクセスした際に、その表示ページのブラウザのウィンドウサイズを指定の800×600のサイズにするということを可能でしょうか。 ただし、ジャンプしてくる前のページに仕込むJavaScriptではなくて、そのページ自体を自動的に指定のウィンドウサイズにできればと思っています。 アドバイス宜しくお願いいたします。

  • PHPで自動ログインの仕組み

    PHPで自動ログインの仕組み PHPで自動ログインの仕組みをどのように組むか検討しています。 初回アクセス時にユーザー名とパスワードの入力を行い次回アクセスから自動ログインしたいのですがセキュリティの問題で良い方法が分かりません。以下が現在検討中の方法です。 方法(1):クッキーにユーザー名とパスワードを保存する。 欠点 :クッキーを見たらログイン情報がばれる。 方法(2):クッキーにセッションIDを保存してDBのユーザー情報と付き合わせる。 欠点 :結局セッションIDを取られてしまえば成りすましされてしまう。 方法(3):方法(2)にアクセス元のIPアドレスを組み合わせる。 欠点 :100%安全ではない。 やはり、クッキーを使っていたらセキュアな認証は不可能なのでしょうか? 個人情報の流出が懸念されるような場合は毎回ログインしてもらいhttps通信の中 大切な情報はセッションに持つのが正しい方法なのですか? WEBの開発には慣れていません。 認証処理の組か方の常識なのかもしれませんが、詳しい方がいたら教えて下さい。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • phpのログイン後の画面遷移について

    現在、phpで会員制サイトを作成する勉強をしています。 開発環境はxamppでMySQLデータベースにPDOで接続しています。 よく、会員制サイトで、非会員又は未ログイン状態でも、ある程度までページが閲覧でき、 詳しいページを閲覧するにはログイン又は新規会員登録を促すといった仕組みを見かけます。 そのような場合、ログイン後、画面は元のページ(ログイン前に操作していたページ)に戻る必要があると思うのですが、 この場合のphpプログラムは、 ログイン画面に遷移する前のページで empty($_SERVER["HTTPS"]) ? "http://" : "https://") . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]); でページのURLを取得し、 ログイン画面のページへ移動するためのボタンが押されたらinput-type="hidden"でログイン画面のページにURLを受け渡し、 ログインが成功したら取得したURLに遷移させる という流れで正しいでしょうか? また、非会員が会員登録する場合のページ遷移に関して少し疑問に思うことがあります。 大体非会員のユーザーが新規登録する場合、 新規登録フォームより会員登録後はログイン状態でTOPページに戻ることが多いですが、 それが一般的でしょうか? 会員登録後に登録前に閲覧していたページに遷移させられればユーザーにとっては一番親切だとは思いますが、 最近ではほとんどのサイトが『仮登録用に入力されたメールアドレス宛に本登録用のURLを記載して送信する』という会員登録方法を使用していますが、 前にいたページに遷移させるというのは物理的に難しいため、会員登録後はTOPページに戻しているのでしょうか? また、ログインが必要なページでは issetでセッション変数に情報が含まれているかどうかで、ログイン画面を表示するか 会員閲覧ページを表示するか分岐させると思いますが、 このプログラムはしょっちゅう使われると思うので 別ファイル化して呼び出すのが賢明でしょうか? ご回答、よろしくお願いします。

    • 締切済み
    • PHP

専門家に質問してみよう