- ベストアンサー
ページ移動について
例えば、◯◯.phpへアクセスの際、◯◯.phpのプログラム内でrequire_onceを使い認証プログラム(□□.php)を呼び出して、認証が成功したら◯◯.phpへ飛ばしたいのですがどのようにしたらいいのでしょうか?(△△.phpへのアクセスの際は、認証成功したら△△.phpに飛ばしたい) header("Location: ".$_SERVER['PHP_SELF']);では、□□.phpに飛んでしまいます。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
PEAR の Auth_Controller を使うといいですよ。使い方はソース内に記述されておりますので、そちらをご参照ください。 希望する動作でなくとも、その手法が参考になるかと思います。
その他の回答 (4)
- hogehoge78
- ベストアンサー率80% (433/539)
返信ありがとうございます。 で、あれば、やっぱり、認証に失敗したら、エラーページなり、ログインページなりにLocationさせる、という処理でいい気がするんですが、それだと何か不都合がありますか? ○○.phpにアクセスして認証が通ったら○○.phpにリダイレクトさせたい意図はなんでしょうか。
- hogehoge78
- ベストアンサー率80% (433/539)
質問者さんが言っている「認証プログラム」ですが、 これは、HTMLを含む、ログイン画面の事を指していますか? それとも、セッションなどの認証ライブラリ(クラスだとか関数群だとか)のことを指していますか? もし、前者なのであれば、△△.phpに対して、require_once して実装するのはなんか違う気がします。 もし可能でしたら、その、□□.phpに記述されている処理の概要と、△△.phpに記述されている処理の概要を教えてください。
補足
引き続きの回答ありがとうございます。 ログイン画面のことです。PEARのAuth関数を使って作成し、HTMLは含んでいません。 ◯◯.php,△△.phpでは、その認証プログラムを読み込んでいるだけです。 回答お待ちしています。
- oktuburero
- ベストアンサー率22% (102/446)
俺だったらテンプレートエンジンを利用してテンプレートを変えて エラーページも認証成功ページも一つのPHPファイルでまかなう。
- hogehoge78
- ベストアンサー率80% (433/539)
それは、発想を逆に出来ませんか。 認証に失敗したらエラーページへ飛ばす。 <?php require_once 'auth.php'; //認証プログラムを呼び出して if(!auth()){ //何らかの認証の関数とか?で失敗したら header('Location: error.php'); } ?> とか。
補足
回答ありがとうございます。 勉強不足でよくわからないのですが、 それだと、認証成功しても結果は現在と変わらないと思うのですが…
補足
認証失敗の場合ではなく成功した場合です。 (○○.phpにアクセスして認証が通ったら○○.phpにリダイレクト) 回答お待ちしています。