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

PHPのPEARライブラリ、Authを利用し認証プログラムを作成しました。が、上手く動きません。
調べてみたところ、どうやら「$myAuth->start();」の部分でプログラムが止まっているようですが、どこが悪いのか良く判りません。

別のサーバでは動作するので、サーバの設定の問題か、バージョンの問題のような気もします。
どのように対応すれば良いのでしょうか? アドバイスお願いします。

なおサーバ環境は指定なので、「動くサーバで動かせ!」とか、「バージョンを変えて貰え!」という回答は無しでお願いします。

-------------------------------------------------
<?php
require_once "DB.php";
require_once "Auth/Auth.php";

$dsn = "mysql://********:********@localhost/********";
$db = DB::connect($dsn);
if (PEAR::isError($db)) {
die($db->getMessage());
}

$params = array(
"dsn" => $db,
"table" => "********",
"usernamecol" => "********",
"passwordcol" => "********",
"db_fields" => "*"
);

$myAuth = new Auth("DB", $params);
$myAuth->start();
if(!$myAuth->getAuth()){
print "fail";
exit();
}
print "success";
?>

--------------------------------------------------
■MySQL :3.23.58-log
■PHP :4.4.4
■PEAR
Auth :1.5.4 (stable)
DB :1.7.12 (stable)
PEAR :1.6.1 (stable)

●質問者: たるるん
●カテゴリ:インターネット ウェブ制作
✍キーワード:23 CONNECT dB DSN EXIT
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● KUROX
●50ポイント

$paramsに渡している変数の値は、環境と一致してるんでしょ

うか?

とまるということは固まっているということですよね。

普通はタイムアウトして、戻ってきてエラーになりそう

ですが・・。

--------------------------

http://dozo.matrix.jp/pear/index.php/PEAR/Auth/drawLogin.html

$a = new defaultAuth("DB", $params)

のように、defaultAuthを使ってみてもいいかもしれません。

◎質問者からの返答

defaultAuthに変えてみましたが、Authでは表示されるログイン認証画面も表示されなくなってしまいました。

ログイン認証画面は表示されるのですが、ログインボタンを押下すると画面が真っ白になります。


この環境でシステムを動かすと、画面がホワイトアウトしてしまいますが、「$myAuth->start();」よりの前の部分までは動いているようです。

なお、バージョン以外はほぼ同一環境の環境では動くので、変数の値は環境と一致していると思います。


2 ● いのくに
●50ポイント

http://www.go-pear.org/manual/ja/package.authentication.auth.aut...

コンストラクタによって、session_start() で PHP のセッション管理が開始されることが保証されます。 Auth が正しく動作するためには、セッションが有効になっている必要があるからです。

Windows なのか Linux なのか FreeBSD なのかよく分かりませんが、session がきちんと機能しているのかどうかが怪しい気がします。

Linux とかの場合、デフォルトだと /tmp とかにセッションファイルが作成されると思うので、該当ディレクトリにファイル作成権限があるかどうか、ご確認下さい。

http://jp2.php.net/session

◎質問者からの返答

サーバの種類はLinuxのようですが、バージョンは不明です

/tmpフォルダ内を覗いたところ、セッションファイルは作成されており、念のためセッションファイル削除後、もう一度アクセスしたところ、新しいセッションファイルが作成されたので、この部分に関しては動作しているかと思います

なお、別途セッションについて

http://search.net-newbie.com/php/function.session-start.html

を試してみたところ、正常に動作しました


3 ● Yota
●50ポイント

1.認証のためのsql文をを作ってPEARで送ったら、すぐ返ってきますか。

2.http://pear.php.net/manual/ja/package.authentication.auth.auth.a...

この例に倣って、$myAuth = new Auth("DB", $params);のところに、$loginFunctionの"myOutput"を作って入れてみたらどうでしょう。

◎質問者からの返答

「1」の意味が良く判りませんが、PEARのAUTHの認証が通らないだけで、PEARのDBは動作しています。

最初は「2」の形式を試していたのですが、動かなかったので"myOutput"の部分を省略してテストしていました。

関連質問


●質問をもっと探す●



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