人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPについての質問です。PEAR::Authを使用して簡単なログイン画面を作成しました。

下記ソースがcontents.phpの内容です。
<?php
ini_set("include_path", '/home/***/public_html/PEAR/PEAR' . PATH_SEPARATOR . ini_get("include_path"));

require_once("Auth/Auth.php");
function loginFunction($usr,$status){
require_once("loginForm.php");
}
$params=array(
"dsn"=>"mysql://***:***@localhost/***",
"table"=>"tblarchitect",
"usernamecol"=>"username",
"passwordcol"=>"password");
$myAuth=new Auth("DB", $params, "loginFunction");
$myAuth->start();
if($myAuth->getAuth()){

print("認証済みです。");
}
?>

contents.phpを実行するとログインフォームを提供しているLoginForm.phpを呼び出します。
その後認証が成功したら「認証済みです。」と表示されますが、これを認証が成功したら指定したPHPファイルやHTMLを表示させるように変更したいのですがどのように記述すれば良いのでしょうか?
どうかご教授お願いします。

●質問者: moks
●カテゴリ:インターネット ウェブ制作
✍キーワード:dB DSN HOME HTML localhost
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● qwenty
●100ポイント

もっとも簡単な方法ですが、

if($myAuth->getAuth()){

}

内に

http://neta.ywcafe.net/000372.html

を実行して頂ければ可能かと思います。

指定されたページへジャンプさせることも可能ですが、その場合ログイン情報を維持するための記述が必要になります。

◎質問者からの返答

回答ありがとうございます。

インクルードすることで可能になりました。ご指摘のようにインクルードされた最初のページより先のコンテンツはIDとPASSで認証した意味が無くなっていました。先のコンテンツに対してもログイン情報を維持するためにはどのような記述が必要になるのでしょうか?申し訳ないですが再度返答していただくと助かります。


2 ● qwenty
●100ポイント

セッションを応用したものになるかと存じます。

http://masago.kir.jp/php20030927.php

http://www.stackasterisk.jp/tech/php/php03_06.jsp

http://kamakura.cool.ne.jp/oppama/oswa/phpsession.html

セッションにてログイン状態を保存し、別ページにおいてもセッションに保存された情報を呼び出すことで、ログイン状態の維持が可能になるかと思います。

◎質問者からの返答

回答ありがとうございました。セッション管理についてはリンク先を参考にして試してみます。


3 ● kakicg
●200ポイント ベストアンサー

PearのAuth自体がセッション管理を行っているので、認証をかけたい全てのページに同様のコードを書いていくのが本筋ではないかと思います。つまり

$myAuth->start();
if($myAuth->getAuth()){
?>
ここにHTMLを入れる
<?php
}

という書き方のなるのではないかと思います。一回認証が通ればセッションがタイムアウトになるまではログインページは読み出されず認証された状態で表示されるようになりますよ。

◎質問者からの返答

回答ありがとうございます。ご指摘のとおり変更したところ理想とする動きになりました。大変助かりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ