• ベストアンサー

ページ移動について

例えば、◯◯.phpへアクセスの際、◯◯.phpのプログラム内でrequire_onceを使い認証プログラム(□□.php)を呼び出して、認証が成功したら◯◯.phpへ飛ばしたいのですがどのようにしたらいいのでしょうか?(△△.phpへのアクセスの際は、認証成功したら△△.phpに飛ばしたい) header("Location: ".$_SERVER['PHP_SELF']);では、□□.phpに飛んでしまいます。

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

  • ベストアンサー
noname#243182
noname#243182
回答No.5

PEAR の Auth_Controller を使うといいですよ。使い方はソース内に記述されておりますので、そちらをご参照ください。 希望する動作でなくとも、その手法が参考になるかと思います。

参考URL:
http://pear.php.net/package/Auth/docs/latest/apidoc/Auth/Auth_Controller.html

その他の回答 (4)

回答No.4

返信ありがとうございます。 で、あれば、やっぱり、認証に失敗したら、エラーページなり、ログインページなりにLocationさせる、という処理でいい気がするんですが、それだと何か不都合がありますか? ○○.phpにアクセスして認証が通ったら○○.phpにリダイレクトさせたい意図はなんでしょうか。

yuu789
質問者

補足

認証失敗の場合ではなく成功した場合です。 (○○.phpにアクセスして認証が通ったら○○.phpにリダイレクト) 回答お待ちしています。

回答No.3

質問者さんが言っている「認証プログラム」ですが、 これは、HTMLを含む、ログイン画面の事を指していますか? それとも、セッションなどの認証ライブラリ(クラスだとか関数群だとか)のことを指していますか? もし、前者なのであれば、△△.phpに対して、require_once して実装するのはなんか違う気がします。 もし可能でしたら、その、□□.phpに記述されている処理の概要と、△△.phpに記述されている処理の概要を教えてください。

yuu789
質問者

補足

引き続きの回答ありがとうございます。 ログイン画面のことです。PEARのAuth関数を使って作成し、HTMLは含んでいません。 ◯◯.php,△△.phpでは、その認証プログラムを読み込んでいるだけです。 回答お待ちしています。

回答No.2

俺だったらテンプレートエンジンを利用してテンプレートを変えて エラーページも認証成功ページも一つのPHPファイルでまかなう。

回答No.1

それは、発想を逆に出来ませんか。 認証に失敗したらエラーページへ飛ばす。 <?php require_once 'auth.php'; //認証プログラムを呼び出して if(!auth()){ //何らかの認証の関数とか?で失敗したら header('Location: error.php'); } ?> とか。

yuu789
質問者

補足

回答ありがとうございます。 勉強不足でよくわからないのですが、 それだと、認証成功しても結果は現在と変わらないと思うのですが…

関連するQ&A